我在 tomcat 中使用 java servlet API。
我将用户名和带有属性用户名的 httpsession 保存在哈希表中,我想知道是否有办法检查 httpsession 是否有效。
我试过了:
try {
String user = httpSession.getAttribute("username")
return "is valid";
} catch (IllegalStateException e) {
return "is not valid";
}
如果我不希望“已登录”用户从多个位置进行连接,我该怎么办?如果我仅控制是否创建新会话,我无法知道他是否已与另一个会话连接。
无需将 httpSession 存储在您自己的哈希中。
查看 API 的HttpServlet请求。如果你看一下方法getSession(布尔值 x)(传递 false 因此不会创建新会话)将确定会话是否有效。
这是一个例子
public void doGet(HttpServletRequest req, HttpServletResponse res) {
HttpSession session = req.getSession(false);
if (session == null) {
//valid session doesn't exist
//do something like send the user to a login screen
}
if (session.getAttribute("username") == null) {
//no username in session
//user probably hasn't logged in properly
}
//now let's pretend to log the user out for good measure
session.invalidate();
}
附带说明一下,如果我正确阅读了您的问题并且您将信息存储在自己的映射中,那么您需要小心,不要造成内存泄漏并自行清除哈希表中的条目。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)