session超过时间自动跳转到登录页面。要求请求的每个url都要进行拦截,当然,js,css这些东西除外。

spring-mvc.xml

Xml代码  
  1. <!-- 拦截器配置 -->
  2. <mvc:interceptors>
  3. <!-- session超时 -->
  4. <mvc:interceptor>
  5. <mvc:mapping path="/*/*"/>
  6. <bean class="com.ziyou.platform.interceptor.SessionTimeoutInterceptor">
  7. <property name="allowUrls">
  8. <list>
  9. <!-- 如果请求中包含以下路径,则不进行拦截 -->
  10. <value>/login</value>
  11. <value>/js</value>
  12. <value>/css</value>
  13. <value>/image</value>
  14. <value>/images</value>
  15. </list>
  16. </property>
  17. </bean>
  18. </mvc:interceptor>
  19. </mvc:interceptors>
  20. <!-- 自定义异常处理,SimpleMappingExceptionResolver这个类可以是个空类,但是要写,方便在java代码里面使用 -->
  21. <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
  22. <property name="exceptionMappings">
  23. <props>
  24. <prop key="com.ziyou.platform.interceptor.SessionTimeoutException">redirect:/login</prop>
  25. </props>
  26. </property>
  27. </bean>
Java代码  
  1. /**
  2. * 处理session超时的拦截器
  3. */
  4. public class SessionTimeoutInterceptor  implements HandlerInterceptor{
  5. public String[] allowUrls;//还没发现可以直接配置不拦截的资源,所以在代码里面来排除
  6. public void setAllowUrls(String[] allowUrls) {
  7. this.allowUrls = allowUrls;
  8. }
  9. @Override
  10. public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
  11. Object arg2) throws Exception {
  12. String requestUrl = request.getRequestURI().replace(request.getContextPath(), "");
  13. System.out.println(requestUrl);
  14. if(null != allowUrls && allowUrls.length>=1)
  15. for(String url : allowUrls) {
  16. if(requestUrl.contains(url)) {
  17. return true;
  18. }
  19. }
  20. User user = (User) request.getSession().getAttribute("user");
  21. if(user != null) {
  22. return true;  //返回true,则这个方面调用后会接着调用postHandle(),  afterCompletion()
  23. }else{
  24. // 未登录  跳转到登录页面
  25. throw new SessionTimeoutException();//返回到配置文件中定义的路径
  26. }
  27. }
  28. @Override
  29. public void afterCompletion(HttpServletRequest arg0,
  30. HttpServletResponse arg1, Object arg2, Exception arg3)
  31. throws Exception {
  32. }
  33. @Override
  34. public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
  35. Object arg2, ModelAndView arg3) throws Exception {
  36. }
  37. }
Java代码  
  1. 另外,你要在controller中设置session的超时时间
  2. request.getSession().setMaxInactiveInterval(20);//20秒
  3. request.getSession().setAttribute("user", user);

Spring mvc 拦截器 配置心得相关推荐

  1. 使用session监听+spring MVC拦截器禁止用户重复登录

    在许多web项目中,需要禁止用户重复登录.一般来说有两种做法: 一是在用户表中维护一个字段isOnLine(是否在线),用户登录时,设定值为true,用户退出时设定为false,在重复登录时,检索到该 ...

  2. spring mvc拦截器_Spring MVC拦截器示例

    spring mvc拦截器 我认为现在是时候看看Spring的MVC拦截器机制了,这种机制已经存在了很多年,并且是一个非常有用的工具. Spring Interceptor会按照提示说:在传入的HTT ...

  3. Spring MVC拦截器~~~登陆验证拦截

    [ 30 分 钟 轻 松 入 门 Spring MVC][web 三 大 组 件 之 ~ ~ Filter 过 滤 器] Interceptor 拦截器学习: 1.了解spring mvc拦截器的概念 ...

  4. 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor

    [Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...

  5. Java Spring MVC框架 VIII 之 Spring MVC拦截器

    Java Spring MVC框架 VIII 之 Spring MVC拦截器 Spring MVC拦截器 1.拦截器简介 拦截器是SpringMvc框架提供的功能 它可以在控制器方法运行之前或运行之后 ...

  6. spring mvc 拦截器拦截jsp页面

    spring mvc 拦截器怎么拦截jsp页面 你这个 是拦截带 /jsp 的 .do请求 解决方案 用spring 的拦截器 去拦截 所有的 .do 请求, 然后写一个 过滤器去拦截 所有的.jsp ...

  7. Spring MVC拦截器

    1.如何实现登录权限检查 使用session进行约定值的检查 实现方法: (1)使用Filter (2)使用Spring的拦截器 拦截器组件简介:Spring MVC特有组件,可以在调用Control ...

  8. 面试:给我说一下Spring MVC拦截器的原理?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://urlify.cn/namaQ ...

  9. 面试官:给我说一下 Spring MVC 拦截器的原理?

    前言 SpringMVC是目前主流的Web MVC框架之一. 拦截器是每个Web框架必备的功能,也是个老生常谈的主题了. 本文将分析SpringMVC的拦截器功能是如何设计的,让读者了解该功能设计的原 ...

最新文章

  1. Tcpdump命令的使用与示例——linux下的网络分析
  2. ICLR2020 | 图池化没有考虑图结构?一文带你了解最新图池化STRUCTPOOL
  3. python wmi_python wmi模块学习
  4. C语言 实现登录注册功能
  5. 串口中断和定时器中断_启士 | 蓝桥杯单片机教程12 中断与定时器 (上)
  6. MAC OS 如何安装命令行工具:Command Line Tools
  7. MySQL安装编译时,/bin/rm: cannot remove `libtoolT': No such file or directory
  8. torch.nn.Module.eval
  9. studio创建java工程_Android studio从头一步步创建Java项目
  10. Oracle优化器介绍
  11. 二维数组传参 实例详解
  12. Win10 Ubuntu 制作多系统U盘
  13. 亚麻种子的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  14. 计算机科学与技术专业毕业答辨问题,计算机科学与技术论文答辩问题(问题及技巧介绍)...
  15. 浪漫--》“慢”+“浪”
  16. -什么样的网站能赚钱
  17. android极光推送声音,【极光推送】iOS APNS 自定义铃声
  18. Ubuntu 16.04添加新硬盘操作流程
  19. 怎么在c语言中使用常用对数,【用法】在C语言中使用对数函数的方法
  20. ※※※※※ 488. 祖玛游戏

热门文章

  1. Python获取指定文件夹下的文件名
  2. Enterprise Solution 进销存管理软件 C/S架构,支持64位系统 物流,资金流,信息流全面集成...
  3. Zoho 修复Desktop Central 中的又一个严重漏洞
  4. 隐藏十年的 Sudo 漏洞 (CVE-2021-3156) 还影响 macOS 和 IBM IAX
  5. [20180626]函数与标量子查询14.txt
  6. 星云链智能合约开发(六):智能合约开发与部署
  7. 套接字socket 的地址族和类型、工作原理、创建过程
  8. 2016打算做运维的人员必知必晓的知识
  9. 面向对象进阶(day7)
  10. 数据分析需要权衡哪些要素?