Noa*_*tin 12 session jsp servlets invalidation
当用户成功登录时,我在servlet中打开了会话:
HttpSession session = request.getSession(true);
session.setAttribute("name", name);
Run Code Online (Sandbox Code Playgroud)
然后我在logout.jsp中写道来终止会话:
<%session.invalidate();%>
Run Code Online (Sandbox Code Playgroud)
要检查会话是否有效,我这样做:
HttpSession session = request.getSession();
String name = (String) session.getAttribute("name");
Run Code Online (Sandbox Code Playgroud)
但它没有用,即使在session.invalidate之后,我的会话也有效.有谁知道我在哪里做错了?
Sub*_*der 24
你应该调用session.getSession(false) - 如果没有当前会话,则返回null.
根据文件
HttpSession#getSession(boolean create)
- create - 如果需要,可以为此请求创建新会话; 如果没有当前会话,则返回false.
所以会话值检查的正确方法是 -
HttpSession session = request.getSession(false);
if(session!=null)
session.setAttribute("name", name);
Run Code Online (Sandbox Code Playgroud)
一旦你使会话无效 -
HttpSession session = request.getSession(false);
if(session!=null)
session.invalidate();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
81026 次 |
最近记录: |