繁体   English   中英

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

[英]How to create session for login and logout in java

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

HttpSession session = request.getSession(true);
session.setAttribute("name", user1);        
String nme=(String) session.getAttribute("name");

而且,这是logout.jsp的代码

<% request.getSession().invalidate();

要么

if(session!=null){
   session=null;
}

要么

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

 response.sendRedirect("login.jsp");
 %>

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

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

request.getSession().invalidate();

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

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

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

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

        response.setHeader("Cache-Control", "no-cache");
        response.setHeader("Pragma", "no-cache");
        response.setHeader("Expires", "-1");

希望这可以帮助你。

只需从会话中删除该属性,并检查它是否存在.....

request.getSession.removeAttribute("name")

检查如下:

if(request.getSession.getAttribute("name")==null){

}

您的问题不在于会话,因为它不会在已加载的页面中使用,只是从缓存中加载(后退按钮功能)

考虑在您的客户端代码中使用localtion.href.replace

localtion.href.replace(url):将当前文档替换为提供的URL。 与assign()方法的不同之处在于,在使用replace()之后,当前页面将不会保存在会话历史记录中,这意味着用户将无法使用“后退”按钮导航到该页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM