如何在java中创建登录和注销会话

Mad*_*lla 4 java jsp httpsession

这是我在登录页面中编写的代码

HttpSession session = request.getSession(true);
session.setAttribute("name", user1);        
String nme=(String) session.getAttribute("name");
Run Code Online (Sandbox Code Playgroud)

而且,这是logout.jsp的代码

<% request.getSession().invalidate();
Run Code Online (Sandbox Code Playgroud)

要么

if(session!=null){
   session=null;
}
Run Code Online (Sandbox Code Playgroud)

要么

 request.getSession().setAttribute("name", null); //it just assigns null to attribute

 response.sendRedirect("login.jsp");
 %>
Run Code Online (Sandbox Code Playgroud)

会话正在创建,但在注销按钮工作后....我希望后退按钮不起作用.

Shi*_*mar 6

要从当前会话注销或无效,您可以使用正确的代码,如下所示.

request.getSession().invalidate();
Run Code Online (Sandbox Code Playgroud)

现在,在您点击浏览器的后退按钮后,它正在从缓存中加载页面.因此,为了处理这种情况,你可以做2件以下的事情.

  1. 使用HTML 5的HistoryAPI 处理浏览器历史记录,这样当您单击后退按钮时,它会在您操作它时转到所需的位置.

  2. 建议用户关闭页面,如一般安全网站在成功登出会议后所做的那样,如银行网站和金融网站.

或者,您可以在servlet容器/服务器端编写和配置拦截器类,以通过在响应中添加以下参数来操作缓存.

        response.setHeader("Cache-Control", "no-cache");
        response.setHeader("Pragma", "no-cache");
        response.setHeader("Expires", "-1");
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助你.