前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringMVC拦截器实现:当用户访问网站资源时,监听session是否过期

SpringMVC拦截器实现:当用户访问网站资源时,监听session是否过期

作者头像
用户2409797
发布2018-08-30 17:26:50
9540
发布2018-08-30 17:26:50
举报
文章被收录于专栏:Java修行之道Java修行之道

SpringMVC拦截器实现:当用户访问网站资源时,监听session是否过期

一、拦截器配置

代码语言:javascript
复制
<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>

二、拦截器编码

代码语言:javascript
复制
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里面得把页面解析到登录页,方便重新登录

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SpringMVC拦截器实现:当用户访问网站资源时,监听session是否过期
    • 一、拦截器配置
      • 二、拦截器编码
        • 三、总结
          • 1.注意这里使用的拦截器是HandlerInterceptor,你的拦截器需要实现这个接口
          • 2.在你的登录handler里面,要将session保存到application中,方便根据sessionId来判断是否存在session
          • 3.sb.append("window.location.href='/user/logout';");   这行代码是说,执行注销操作,在你的/user/logout   这个handler里面得把页面解析到登录页,方便重新登录
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档