【问题标题】:how to stop backward redirecting after logout called in JSP?如何在 JSP 中调用注销后停止向后重定向?
【发布时间】: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


【解决方案1】:

使用 response.setHeader() 方法设置这些缓存控件

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache"); 
response.setHeader("Expires", "0"); 

【讨论】:

    猜你喜欢
    • 2022-01-20
    • 2021-11-26
    • 2012-11-05
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多