我在tomcat中使用java servlet。 我保存在散列表中的用户名和httpsession属性usrname 我想知道是否有方法知道httpsession是否有效。java httpsession有效吗?
我想:
try{
String user = httpSession.getAttribute("username")
return "is valid";
}catch(IllegalStateException e){
return "is not valid";
}
TNKS的答案,但我怎么能如果我不惯于一个“登录”的用户从更多的一处连接呢?如果我仅在创建新会话的时候控制,我无法知道他是否连接到另一个会话。
这实际上并没有什么帮助,因为您仍然需要处理(或接受)出现非法StatException的可能性。因为在检查和会话获取之间的微秒内,会话可能失效。 – MJB
我的(也许是不正确的)假设是tomcat在传递servlet请求之前看到会话ID,它会检查它是否超时,如果不重置时间以保持会话存活无论默认会话长度是多少。没有? –
但是你可以同时有一个注销请求。多线程,多servlet,还记得吗? – MJB