环境 tomcat 6.0有两个页面 index.jsp 跟 logout.jsp 两个页面都包含了login.jsp修改login.jsp的内容,然后直接覆盖,在其中一个环境测试:1. 打开index.jsp 页面显示修改后的login.jsp
2. 登录,然后logout到logout.jsp  显示的居然是修改前的login.jsp
3. 刷新后重新显示回修改前的login.jsp虽然问题在重启tomcat之后解决了...不过就修改了一些静态显示内容,为什么会这样啊!!!求解~~

解决方案 »

  1.   

    首先你要清楚jsp不是静态页面。tomcat发布后会将jsp编译成class。
    class中通过response直接输出浏览器能识别的标签(可以到tomcat安装路径下的work\Catalina\localhost\找你的jsp编译后的class反编译一下看看代码)。
    所以当你修改一些jsp页面时而没有重新发布,会有些缓存的问题的。
      

  2.   

    用的是   <%@include%>还是<jsp:include>
      

  3.   

    因为可能第一个宿主jsp可能已经重新编译了,而第二个宿主jsp没有重新编译。所以才会有的又有的没有。
    偶发的,解决问题明白原理就行了。没有必要在这个问题上挣扎。
      

  4.   

    <%@include%>是不会去检测文件变化的
    百度一下这2个的区别就知道了