gpt4 book ai didi

java - 防止用户在 session 关闭后返回

转载 作者:太空宇宙 更新时间:2023-11-04 14:22:58 25 4
gpt4 key购买 nike

我试图阻止用户在 session 关闭后返回。但它不起作用。任何人都建议我如何做到这一点。

在注销操作类中,我编写了这段代码

            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);
mySession.removeAttribute("user_id");
mySession.invalidate();

return mapping.findForward(SUCCESS);

因此它将用户重定向到索引页面。当我按下后退按钮时,它会返回,用户可以看到已访问过的所有页面。

如何防止这种情况发生。

在每个jsp页面中我都这样尝试

       if (session.getAttribute("user_id") == null || session.getAttribute("user_id").equals(""))
{
response.sendRedirect("index.do");
}
else
{
.........
}

即使我无法阻止用户返回。当用户执行任何操作时,只有用户重定向到索引。帮帮我。

最佳答案

更好的解决方案是使用过滤器,它可以处理对应用程序的每个请求。

http://www.coderanch.com/t/547172/Struts/filters-struts

使用过滤器验证用户 session 的示例。

public void doFilter(final ServletRequest request, final ServletResponse res, final FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;

if (req.getSession().getAttribute("user_id") == null || req.getSession().getAttribute("user_id").equals("")) {
HttpServletResponse response = (HttpServletResponse) res;
response.addHeader("Location", "/SessionTimeoutAction.do");
response.sendError(HttpServletResponse.SC_TEMPORARY_REDIRECT);
}


chain.doFilter(request, res);
}

关于java - 防止用户在 session 关闭后返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26987293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com