JSP页面是缓存的,不能改变它,tomcat

时间:2010-04-08 20:38:44

标签: jsp tomcat

我有一个java服务器,当我在JSP代码中更改某些内容,并且我再次从浏览器调用该页面时,我的更改未显示,服务器返回旧的JSP。< / p>

任何人都知道为什么?

3 个答案:

答案 0 :(得分:11)

The Jasper How-to告诉conf/web.xml,您需要org.apache.jasper.servlet.JspServlet

  • development - Jasper是否用于开发模式?如果为true,则可以通过modificationTestInterval parameter.true或false指定检查JSP以进行修改的频率,默认为true。
  • checkInterval - 如果开发为false且checkInterval大于零,则启用后台编译。 checkInterval是检查JSP页面(及其相关文件)是否需要重新编译之间的时间(以秒为单位)。默认为0秒。

The <Context> element具有以下属性:

  • reloadable - 如果除了jsp文件之外还希望热部署类和库,则设置为true
  • antiResourceLocking - 应该是假的

以上所有内容都与服务器有关。客户端缓存是您可能看不到更新版本页面的另一个原因。只需点击CTRL + R / CTRL + F5即可。

决定你的缓存策略是不同的,还有一个不同的主题 - 你会告诉浏览器缓存什么资源,以及持续多长时间。您最好将缓存标题 - ExpiresCache-Control(以及Pragma)放在应用程序的公共位置,以便快速更改。

答案 1 :(得分:4)

您也可以停止应用程序(使用Tomcat WebApp Manager),并删除tomcat目录中应用程序的“work”文件夹。这将强制tomcat使用新的JSP重建缓存文件。

包含缓存文件的文件夹的路径如下所示: 的的/ usr / Apache的Tomcat的XXX /工作/卡塔利娜/本地主机/

只需使用您应用的名称删除该文件夹,然后重新启动该应用。

答案 2 :(得分:-1)

您可以尝试做两件事:

在web.xml中设置<context-param>标记

<context-param>
  <param-name>weblogic.jsp.pageCheckSeconds</param-name>
  <param-value>0</param-value>
</context-param>

在你顶部的Jsp页面中:

<%
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0);
%>