Как справиться с проблемой кнопки браузера с помощью пружины? - PullRequest
4 голосов
/ 12 февраля 2010

Как справиться с проблемой кнопки браузера с помощью пружины?.

В моем приложении пользователь правильно входит в систему, и когда пользователь нажимает кнопку «Назад», состояние страницы не поддерживается. Так что я поддерживаю состояние страницы, даже если пользователь нажимает кнопку «Назад» / «Вперед»

Спасибо

Ответы [ 3 ]

5 голосов
/ 12 февраля 2010

Видимо страницы запрашиваются из кеша браузера. Вам нужно будет отключить кэширование на клиентской стороне рассматриваемых страниц. Вы можете сделать это, создав Filter, который прослушивает url-pattern страниц, для которых вы хотите отключить кэш, например *.jsp. Выполните следующие действия в методе doFilter():

HttpServletResponse httpres = (HttpServletResponse) response;
httpres.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
httpres.setHeader("Pragma", "no-cache"); // HTTP 1.0.
httpres.setDateHeader("Expires", 0); // Proxies.
chain.doFilter(request, response);

Таким образом, клиентскому приложению будет дано указание не кэшировать запросы, соответствующие url-pattern этого фильтра. Нажатие кнопки «Назад» приведет к выполнению запроса real от сервера с предлагаемыми свежими данными. Чтобы сохранить определенные данные на стороне сервера между запросами, вам нужно захватить область сеанса или использовать только запросы GET.

О, не забудьте сначала очистить кеш браузера после внедрения и перед тестированием;)

2 голосов
/ 02 ноября 2012
0 голосов
/ 01 февраля 2017

Настройте перехватчик внутри контекста сервлета следующим образом:

<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/**/*"/>
        <beans:bean id="webContentInterceptor" class="org.springframework.web.servlet.mvc.WebContentInterceptor">
            <beans:property name="cacheSeconds" value="0"/>
            <beans:property name="useExpiresHeader" value="true"/>
            <beans:property name="useCacheControlHeader" value="true"/>
            <beans:property name="useCacheControlNoStore" value="true"/>
        </beans:bean>
    </mvc:interceptor>
</mvc:interceptors>

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

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