2010-04-08 24 views
5

我有一個java服務器,當我更改JSP代碼內的某些內容,並且我從瀏覽器再次調用該頁面時,我的更改未顯示,服務器返回舊的JSPJSP頁面被緩存,無法更改它,tomcat

任何人有想法爲什麼?

+0

您是否使用IDE? – BalusC 2010-04-09 00:59:20

+0

您是否將您的應用部署爲戰爭? – 2010-04-09 05:17:36

回答

11

The Jasper How-to告訴在conf/web.xml,爲您的org.apache.jasper.servlet.JspServlet您需要:

  • development - Jasper是否在開發模式下使用?如果爲true,則可以通過modifyTestInterval參數指定檢查JSP進行修改的頻率.true或false,默認爲true。
  • checkInterval - 如果開發錯誤並且checkInterval大於零,則啓用後臺編譯。 checkInterval是檢查JSP頁面(及其相關文件)是否需要重新編譯的時間間隔(以秒爲單位)。默認0秒。

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

  • reloadable - 如果你想在另外的類和庫熱部署到JSP文件
  • antiResourceLocking設置爲true - 應該是假的

以上都是關於服務器。客戶端緩存是您看不到更新版本頁面的另一個原因。只需按CTRL + R/CTRL + F5就足夠了。

確定您的緩存策略是不同的,並且是一個不同的主題 - 您告訴瀏覽器緩存哪些資源以及多長時間。您最好將緩存標頭 - ExpiresCache-Control(和Pragma)放在應用程序中的一個公共位置,在那裏您可以快速更改它。

-1

你可以嘗試做兩件事情:

<context-param>標籤在web.xml中

<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); 
%> 
+0

Weblogic? OP正在使用Tomcat。第二部分僅解決客戶端問題。 – BalusC 2010-04-09 00:59:51

4

您也可以停止應用程序(使用Tomcat WebApp Manager),並刪除tomcat目錄中應用程序的「work」文件夾。這將強制tomcat使用新的JSP重建緩存文件。

與緩存文件的文件夾的路徑是這樣的: 在/ usr/Apache的Tomcat的XXX /工作/卡塔利娜/本地主機/

只需刪除應用程序的名稱的文件夾,並重新啓動應用程序。