【发布时间】:2017-08-02 10:31:21
【问题描述】:
我需要阻止用户在注销后向后重定向。我尝试使用以下方法停止向后重定向,
1) 使用 servlet 将标头 cache-control 更改为 no-cache,no-store。
但它仅在使用 servlet 重定向到页面时才有效。
2) 然后我使用了一个 servlet 过滤器来完成同样的任务
doFilter(){
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
httpResponse.setHeader("Pragma", "no-cache");
httpResponse.setDateHeader("Expires", 0);
}
3) 使用元标记清除缓存
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="pragma" content="no-cache" />
当我向后重定向到像 index 这样的普通页面时,我仍然可以在标题中看到登录详细信息(用户名、购物车等)
最后,我尝试在开发者工具中禁用缓存,它成功了。这不切实际。
如何停止向后重定向(如在 facebook 中)?
谢谢。
【问题讨论】:
-
“当我向后重定向到像 index 这样的普通页面时,我仍然可以在标题中看到登录详细信息(用户名、购物车等)” 你的意思是你正在存储这些东西在 cookie 中而不是在服务器端会话中?然后停止这样做。
标签: facebook jsp redirect servlets browser-cache