Страница JSP кэшируется, изменить ее нельзя, кот

У меня есть сервер java, когда я что-то меняю в коде JSP, и снова вызываю страницу из браузера, мои изменения не отображаются, сервер возвращает старый JSP.

Кто-нибудь знает, почему?


person user301467    schedule 08.04.2010    source источник
comment
Вы развертываете свое приложение как войну?   -  person Maurice Perry    schedule 09.04.2010


Ответы (3)


Jasper How-to говорит об этом в conf/web.xml для вашего org.apache.jasper.servlet.JspServlet тебе нужно:

  • development - Джаспер используется в режиме разработки? Если задано значение true, частота, с которой JSP проверяются на модификацию, может быть указана с помощью параметра upgradeTestInterval.true или false, по умолчанию — true.
  • checkInterval - Если для разработки установлено значение false, а checkInterval больше нуля, фоновые компиляции включены. checkInterval — это время в секундах между проверками необходимости перекомпиляции JSP-страницы (и зависимых от нее файлов). По умолчанию 0 секунд.

Элемент <Context> имеет следующие свойства:

  • reloadable — установите значение true, если вы хотите горячее развертывание классов и библиотек в дополнение к файлам jsp.
  • antiResourceLocking - должно быть ложным

Все вышесказанное было о сервере. Кэширование на стороне клиента — еще одна причина, по которой вы можете не видеть новые версии страниц. Часто бывает достаточно просто нажать CTRL+R / CTRL + F5.

Выбор стратегии кэширования — это нечто иное, и это отдельная тема — какие ресурсы вы бы сказали браузеру кэшировать и как долго. Желательно поместить заголовки кеша — Expires и Cache-ControlPragma) в общее место в вашем приложении, где вы сможете быстро их изменить.

person Bozho    schedule 09.04.2010

Вы также можете остановить приложение (с помощью Tomcat WebApp Manager) и удалить рабочую папку приложения в каталоге tomcat. Это заставит tomcat перестроить файлы кеша, используя новые JSP.

Путь к папке с файлами кеша примерно такой: /usr/apache-tomcat-XXX/work/Catalina/localhost/

Просто удалите папку с названием вашего приложения и перезапустите приложение.

person Kirill Yunussov    schedule 16.04.2014

Вы можете попробовать сделать 2 вещи:

Установить тег <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);
%>
person Rohit Agarwal    schedule 08.04.2010
comment
Веблогика? ОП использует Tomcat. Вторая часть исправляет только проблему на стороне клиента. - person BalusC; 09.04.2010