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提交的数组数据代码分享等,如有不足之处,欢迎留言指出。小编会及时进行更改,感谢朋友们对本站的支持!
上一篇:解析Mybatis的insert方法返回数字-2147482646的解决
栏 目:JAVA代码
本文标题:SpringMVC拦截器实现监听session是否过期详解
本文地址:http://www.codeinn.net/misctech/93962.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




