我在写JSP页面,注销时使会话无效。但是问题是当我单击返回时,我可以访问上一页。如何避免。经过一些互联网搜索之后,我知道这是因为浏览器的缓存。谁能帮我解决这个问题?
您必须显式设置响应标头,并让浏览器知道不要缓存那些页面。
为所有jsp页面设置响应标题,如下所示:单击后退按钮时不应显示该页面:
response.setHeader("Cache-Control","no-cache,no-store,must-revalidate");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires", 0);
甚至更好的方法是noCacheFilter
通过为* .jsp文件设置过滤器来设置以防止对jsp页面进行缓存,如下所示:
@Override
public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException {
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expiresponse", 0);
chain.doFilter(request, response);
}
并将此过滤器添加到地图*.jsp
文件li
<filter>
<filter-name>noCacheFilter</filter-name>
<filter-class>com.abcd.NoCacheFilter</filter-class> //Filter class path
</filter>
<filter-mapping>
<filter-name>noCacheFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句