在开发web应用程序的时候登录功能通常把session寄放在一hashtable中。如果用户太长时间没操作导致session失效。那么久需要进行自动登出操作。但问题是如何判断session失效呢。
网络上使用isNew()等方法是再session失效后再生成一个新的时候使用的。对于判断已经失效的session本人采用以下方法:在session失效后对其进行isNew或者其他方法调用时会抛出IllegalStateException异常。我们尝试去捕捉这个异常。在catch里面就可以写你想要执行的操作了。
try{
String a=(String)((HttpSession)sessionTable.get(id)).getAttribute("name");
}catch(IllegalStateException e1){
logoff(id);
} 方法可能还有很多不完善的地方,希望大家提出。
网络上使用isNew()等方法是再session失效后再生成一个新的时候使用的。对于判断已经失效的session本人采用以下方法:在session失效后对其进行isNew或者其他方法调用时会抛出IllegalStateException异常。我们尝试去捕捉这个异常。在catch里面就可以写你想要执行的操作了。
try{
String a=(String)((HttpSession)sessionTable.get(id)).getAttribute("name");
}catch(IllegalStateException e1){
logoff(id);
} 方法可能还有很多不完善的地方,希望大家提出。
if(request.getSession(false)==null){
System.out.println("Session has been invalidated!");
}else{
System.out.println("Session is active!");
}
这个可以,但是当使用ssh框架的时候,在登出是需要对数据库进行改写,使用listener就不太好用
使用监听,登出的时候,你只需要让session失效,而所有的session失效都会被监听捕获,在session监听中,session失效时,对数据库改写不就好了?
session没有时间管理?偶忘了。
同理