加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

SpringMVC拦截器实现监听session是否过期详解

发布时间:2020-12-14 21:07:37 所属栏目:Java 来源:网络整理
导读:本文主要向大家介绍了SpringMVC拦截器实现:当用户访问网站资源时,监听session是否过期的代码,具体如下: 一、拦截器配置 mvc:interceptors mvc:interceptor mvc:mapping path="/**"/ mvc:exclude-mapping path="/user/login"/ !-- 不拦截登录请求 -- mvc:

本文主要向大家介绍了SpringMVC拦截器实现:当用户访问网站资源时,监听session是否过期的代码,具体如下:

一、拦截器配置

<mvc:interceptors>
  <mvc:interceptor>
    <mvc:mapping path="/**"/>
    <mvc:exclude-mapping path="/user/login"/>  <!-- 不拦截登录请求 -->
    <mvc:exclude-mapping path="/user/logout"/>  <!-- 不拦截注销请求 -->
    <mvc:exclude-mapping path="*.jsp"/>
    <mvc:exclude-mapping path="*.html"/>
    <mvc:exclude-mapping path="*.js"/>
    <mvc:exclude-mapping path="*.css"/>
    <bean class="org.huaxin.interceptor.AccessInterceptor"></bean>
  </mvc:interceptor>
</mvc:interceptors>

二、拦截器编码

public boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object obj) throws Exception {
    System.out.println("[AccessInterceptor]:preHandle执行");
    HttpSession session = request.getSession();
    ServletContext application = session.getServletContext();
    if(application.getAttribute(session.getId()) == null){  //未登录
      PrintWriter out = response.getWriter();
      StringBuffer sb = new StringBuffer("<script type="text/javascript" charset="UTF-8">");
      sb.append("alert("你的账号被挤掉,或者没有登录,或者页面已经过期,请重新登录")");
      sb.append("window.location.href='/user/logout';");
      sb.append("</script>");
      out.print(sb.toString());
      out.close();
      return false;
    }else{  //已经登录
      return true;
    }
  }

三、总结

1.注意这里使用的拦截器是HandlerInterceptor,你的拦截器需要实现这个接口

2.在你的登录handler里面,要将session保存到application中,方便根据sessionId来判断是否存在session

3.sb.append("window.location.href='/user/logout';"); 这行代码是说,执行注销操作,在你的/user/logout 这个handler里面得把页面解析到登录页,方便重新登录

以上就是本文关于SpringMVC拦截器实现监听session是否过期详解的全部内容,希望对大家有所帮助,感兴趣的朋友可以继续参阅本站:Java监听器的作用及用法代码示例、SpringMVC开发restful API之用户查询代码详解、springmvc接收jquery提交的数组数据代码分享等,如有不足之处,欢迎留言指出。小编会及时进行更改,感谢朋友们对本站的支持!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读