У меня есть сервер Java, когда я изменяю что-то в JSP
код, и я называю страницу снова от браузера, мои изменения не показывают, сервер возвращает старое JSP
.
У кого-либо есть идея почему?
В Jasper How-to говорится, что в conf/web.xml
для вашего org.apache.jasper.servlet.JspServlet
нужно:
development
- Используется ли Jasper в режиме разработки? Если true, частота проверки JSP на модификацию может быть задана с помощью параметра modificationTestInterval.true или false, по умолчанию true. checkInterval
- Если значение параметра development равно false и checkInterval больше нуля, фоновая компиляция включена. checkInterval - это время в секундах между проверками на необходимость перекомпиляции страницы JSP (и ее зависимых файлов). По умолчанию 0 секунд. Элемент
имеет следующие свойства:
reloadable
- устанавливается в true, если вы хотите горячего развертывания классов и libs в дополнение к jsp файламantiResourceLocking
- должно быть falseВсе вышесказанное касалось сервера. Кэширование на стороне клиента - еще одна причина, по которой вы можете не видеть новые версии страниц. Простого нажатия CTRL+R / CTRL + F5 часто бывает достаточно.
Выбор стратегии кэширования - это нечто другое, и это другая тема - какие ресурсы вы скажете браузеру кэшировать, и как долго. Предпочтительно поместить заголовки кэша - Expires
и Cache-Control
(и Pragma
) в общее место в вашем приложении, где вы сможете быстро их изменить.
Вы можете попробовать сделать 2 вещи:
Установить тег
в 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);
%>