无忧无卤

鸟在笼中,恨关羽不能张飞;人处世上,要八戒更需悟空

一个判断session是否过期的小技巧[转csdn]

前一段时间有好几个问题,提到怎么判断session是否过期。  
  接触jspo已经很久了,但是还真没有想过这个问题,当时也就没有找到一个满意的答案给人家。  
  当时,我提到一个方法,就是实现HttpSessionListener接口,然后在sessionDestroyed()方法中执行一些操作,表示session要过期了,因为这个方法是session.invalidate()之前监听器调用的方法。这个判断的方法显然不能让人满意。  
  我当时问了些人,但是也没有得到一个准确的答案。  
  正好偶然间看到,request.getSeesion(boolean)方法,一下子让我恍然大悟。这个方法里面传了一个boolean值,这个值如果是true,那么如果当前的request的session不可用,那么就创建新的会话,如果存在就返回当前的会话。如果参数是false,那么在request的当前会话不存在的时候就返回null。  
  这样我们就可以很容易的联想到这个所谓的request的当前会话是否存在和session过期的联系,所以我们就可以“近似地”认为session不存在就是session过期了,那么我们就可以很容易地判断session是否过期了。方法如下:  
  if(request.getSession(false)==null)  
        System.out.println("Session   has   been   invalidated!");  
  else  
        System.out.println("Session   is   active!");  
   
  可能大家注意到我上面有一个“近似地”字眼,也就是说存在特别情况。  
  这个特殊情况就是第一次请求还没有创建会话的时候,那么用这个方法返回的仍然是null,原因我想大家应该是显然的。  
   
  以上是个人拙见,希望大家指正。
原文:http://topic.csdn.net/t/20050225/08/3804877.html

posted on 2008-07-27 22:44 beyond 阅读(312) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2008年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

统计

常用链接

留言簿(1)

随笔档案

相册

搜索

最新评论

  • 1. re: 近期任务
  • 大哥 等着你的drools5翻译呢 drools4把我搞死了 如果你有关于drools4的心得的话请指教 感觉自己使用的不是很好 望赐教 QQ:53816565 谢谢
  • --sunnidy
  • 2. re: Mysql迁移到Oracle
  • 不错,看样子支持大多数数据库迁移到oracle,不知道是否支持从oracle转出?
  • --FastUnit

阅读排行榜

评论排行榜