首页 > 解决方案 > 如何防止用户从系统注销后导航回 JSP 页面?

问题描述

目前,我在注销页面上使会话无效,并清除了主菜单中的缓存。但是当我单击“返回”按钮时,它会显示 HTTP 状态 500 - 内部服务器错误。

由于会话无效而不是此错误,如何继续显示登录页面?

Mainmene.jsp
<%
    response.setHeader("Cache-Control","no-cache");
    response.setHeader("Cache-Control","no-store");
    response.setHeader("Pragma","no-cache");
    response.setDateHeader ("Expires", 0);

    if(session.getAttribute("email")==null) {
        response.sendRedirect("loginpage.jsp"); // GO TO LOGIN PAGE
        }
    %>


Logout.java
    protected void doPost(HttpServletRequest request, HttpServletResponse 
response)
        throws ServletException, IOException {

        response.setContentType("text/html");

        HttpSession session=request.getSession();  
        session.invalidate(); 

        response.sendRedirect("loginpage.jsp");

}

标签: javajspsessionservletscookies

解决方案


您可以使用Filter检查 sessionScope 中是否存在用户对象并将其应用于给定类型的url-patterns. 你可以在这里查看如何使用。


推荐阅读