jackyrong

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在struts2+spring+hibernate 的体系中,经常要遇到的一个问题就是当用户登陆后,SESSION超过指定的时间后,
当用户再点某个连接时,系统会自动返回到登陆的页面。在实现时候,由于是STRUTS2,因此可以充分利用拦截器。
拦截器示例代码如下

  ActionContext ctx = ActionContext.getContext();
        Map session = ctx.getSession();
         Action action = (Action)actionInvocation.getAction();
        if (action instanceof LoginSystem) {   
          return actionInvocation.invoke();   
          }   
        String userName = (String)session.get(USER_NAME);
           if(userName == null) 
{
        return LOGIN;
        } else {
         return actionInvocation.invoke();
        }
   要注意的,由于要排除登陆这个ACTION,所以要用    if (action instanceof LoginSystem) {  这句去判断,
因为登陆前会执行这个拦截器,这时SESSION肯定为空,就不能再跑去显示“SESSSION超时”这个页面了

posted on 2009-09-26 21:59  jackyrong的世界  阅读(3100)  评论(0编辑  收藏  举报