Jsp страница вызывается из кеша, а не загружается с сервера - PullRequest
1 голос
/ 11 марта 2010

Я вызываю jsp на основе 2 параметров, которые передаются из jsp 1 таким образом. Ниже я передаю 2 параметра в 2.jsp и на основе этих 2 параметров данные отображаются в 2.jsp. У меня есть цикл ву меня есть несколько hrefs, как тот, который я описал ниже. Каждый из этих href передает свой набор значений в 2.jsp.

out.println("<a href=\"2.jsp?prId=" + prog.getId() + count + "\">" + prog.getName() + "</a>");

Я получаю эти 2 параметра в 2.jsp, используяследующие строки

count_id = request.getParameter( "country_id" );
prog_id  = Integer.parseInt(request.getParameter( "program_id" ));

На основе этих двух параметров я показываю соответствующие данные в 2.jsp

Теперь у меня есть кнопка возврата в 2.jsp и я вызываю 1.jsp в 2.JSP с помощью следующего кода

<a href="1.jsp"><img src="/image/back.gif" border="0"></a>

Проблема заключается в том, что когда я использую кнопку «Назад» и возвращаюсь к 1.jsp и выбираю другой раздел href, такой как описанный выше, я получаю данные, относящиеся к предыдущему разделу hrefвыбран.

Я думаю, проблема в том, когда я запрашиваю страницу загружается из кэша, а не с сервера.Пожалуйста, совет

1 Ответ

1 голос
/ 11 марта 2010

Вам просто нужно указать браузеру НЕ кэшировать страницу. Вы можете сделать это с помощью фильтра сервлетов, который устанавливает следующие заголовки ответа:

@WebFilter("*.jsp")
public class NoCacheFilter implements Filter {

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
        response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
        response.setDateHeader("Expires", 0); // Proxies.
        chain.doFilter(req, res);
    }

    // ...
}

Теперь просто сопоставьте этот фильтр с шаблоном URL, охватывающим интересующие страницы JSP. Например. *.jsp или /somefolder/* (@WebFilter в примере делает это для всех JSP).

Убедитесь, что вы очистили кеш браузера перед тестированием.

Смотри также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...