如何验证/无效会话的jsp / servlet的?(How to validate/invalida

2019-07-18 12:23发布

我在小服务程序宣布会议开幕,当用户进行登录成功:

HttpSession session = request.getSession(true);
session.setAttribute("name", name);

然后我在logout.jsp写信给终止会话:

<%session.invalidate();%>

要检查是否有一个会话是有效的,我这样做:

HttpSession session = request.getSession();
String name = (String) session.getAttribute("name");

但它不工作,我得到了会议,即使则session.invalidate后有效。 有谁知道我在哪里做错了吗?

Answer 1:

你应该调用session.getSession(false) - 如果没有当前会话返回NULL。

根据文档

HttpSession#getSession(boolean create) -创建-真正创造必要时申请一个新的会话; 假返回NULL如果没有当前会话。

所以会话值检查的正确的方法是 -

HttpSession session = request.getSession(false);
if(session!=null)
  session.setAttribute("name", name);

一旦你无效会话 -

HttpSession session = request.getSession(false);
if(session!=null)
session.invalidate();


Answer 2:

为了验证会话

HttpSession session = request.getSession(true);
session.setAttribute("name", name);

以使它无效,你需要做的

session.removeAttribute("name");
session.invalidate();

但是,你需要保持一件事记住,对象可能变为无效,但这个亘古不意味着它会立即清洗,即使其所有属性消失有可能是sesssion对象将得到重用无效之后,我得到了相同的用户ID和创建时间。



文章来源: How to validate/invalidate sessions jsp/servlets?