SpringMVC拦截器实现监听session是否过期详解
|
本文主要向大家介绍了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提交的数组数据代码分享等,如有不足之处,欢迎留言指出。小编会及时进行更改,感谢朋友们对本站的支持! (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – QPID – Spring CachingConnectionFactory – 重新
- Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数示例
- java – RealmObject和Parcelable
- java – 基本机器学习
- java – com.github.tomakehurst.wiremock.client.Verifica
- 四步轻松搞定java web每天定时执行任务
- java – 在ejb中缩小jndi reffrence中的类强制转换异常
- java – 在多个客户域上运行Google App Engine应用程序
- Spring Boot中整合Spring Security并自定义验证代码实例
- java – 垂直地将两个JLabel放在彼此之下
