Spring mvc 拦截器 配置心得
session超过时间自动跳转到登录页面。要求请求的每个url都要进行拦截,当然,js,css这些东西除外。
spring-mvc.xml
- <!-- 拦截器配置 -->
- <mvc:interceptors>
- <!-- session超时 -->
- <mvc:interceptor>
- <mvc:mapping path="/*/*"/>
- <bean class="com.ziyou.platform.interceptor.SessionTimeoutInterceptor">
- <property name="allowUrls">
- <list>
- <!-- 如果请求中包含以下路径,则不进行拦截 -->
- <value>/login</value>
- <value>/js</value>
- <value>/css</value>
- <value>/image</value>
- <value>/images</value>
- </list>
- </property>
- </bean>
- </mvc:interceptor>
- </mvc:interceptors>
- <!-- 自定义异常处理,SimpleMappingExceptionResolver这个类可以是个空类,但是要写,方便在java代码里面使用 -->
- <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
- <property name="exceptionMappings">
- <props>
- <prop key="com.ziyou.platform.interceptor.SessionTimeoutException">redirect:/login</prop>
- </props>
- </property>
- </bean>
- /**
- * 处理session超时的拦截器
- */
- public class SessionTimeoutInterceptor implements HandlerInterceptor{
- public String[] allowUrls;//还没发现可以直接配置不拦截的资源,所以在代码里面来排除
- public void setAllowUrls(String[] allowUrls) {
- this.allowUrls = allowUrls;
- }
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
- Object arg2) throws Exception {
- String requestUrl = request.getRequestURI().replace(request.getContextPath(), "");
- System.out.println(requestUrl);
- if(null != allowUrls && allowUrls.length>=1)
- for(String url : allowUrls) {
- if(requestUrl.contains(url)) {
- return true;
- }
- }
- User user = (User) request.getSession().getAttribute("user");
- if(user != null) {
- return true; //返回true,则这个方面调用后会接着调用postHandle(), afterCompletion()
- }else{
- // 未登录 跳转到登录页面
- throw new SessionTimeoutException();//返回到配置文件中定义的路径
- }
- }
- @Override
- public void afterCompletion(HttpServletRequest arg0,
- HttpServletResponse arg1, Object arg2, Exception arg3)
- throws Exception {
- }
- @Override
- public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
- Object arg2, ModelAndView arg3) throws Exception {
- }
- }
- 另外,你要在controller中设置session的超时时间
- request.getSession().setMaxInactiveInterval(20);//20秒
- request.getSession().setAttribute("user", user);
Spring mvc 拦截器 配置心得相关推荐
- 使用session监听+spring MVC拦截器禁止用户重复登录
在许多web项目中,需要禁止用户重复登录.一般来说有两种做法: 一是在用户表中维护一个字段isOnLine(是否在线),用户登录时,设定值为true,用户退出时设定为false,在重复登录时,检索到该 ...
- spring mvc拦截器_Spring MVC拦截器示例
spring mvc拦截器 我认为现在是时候看看Spring的MVC拦截器机制了,这种机制已经存在了很多年,并且是一个非常有用的工具. Spring Interceptor会按照提示说:在传入的HTT ...
- Spring MVC拦截器~~~登陆验证拦截
[ 30 分 钟 轻 松 入 门 Spring MVC][web 三 大 组 件 之 ~ ~ Filter 过 滤 器] Interceptor 拦截器学习: 1.了解spring mvc拦截器的概念 ...
- 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor
[Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...
- Java Spring MVC框架 VIII 之 Spring MVC拦截器
Java Spring MVC框架 VIII 之 Spring MVC拦截器 Spring MVC拦截器 1.拦截器简介 拦截器是SpringMvc框架提供的功能 它可以在控制器方法运行之前或运行之后 ...
- spring mvc 拦截器拦截jsp页面
spring mvc 拦截器怎么拦截jsp页面 你这个 是拦截带 /jsp 的 .do请求 解决方案 用spring 的拦截器 去拦截 所有的 .do 请求, 然后写一个 过滤器去拦截 所有的.jsp ...
- Spring MVC拦截器
1.如何实现登录权限检查 使用session进行约定值的检查 实现方法: (1)使用Filter (2)使用Spring的拦截器 拦截器组件简介:Spring MVC特有组件,可以在调用Control ...
- 面试:给我说一下Spring MVC拦截器的原理?
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://urlify.cn/namaQ ...
- 面试官:给我说一下 Spring MVC 拦截器的原理?
前言 SpringMVC是目前主流的Web MVC框架之一. 拦截器是每个Web框架必备的功能,也是个老生常谈的主题了. 本文将分析SpringMVC的拦截器功能是如何设计的,让读者了解该功能设计的原 ...
最新文章
- Tcpdump命令的使用与示例——linux下的网络分析
- ICLR2020 | 图池化没有考虑图结构?一文带你了解最新图池化STRUCTPOOL
- python wmi_python wmi模块学习
- C语言 实现登录注册功能
- 串口中断和定时器中断_启士 | 蓝桥杯单片机教程12 中断与定时器 (上)
- MAC OS 如何安装命令行工具:Command Line Tools
- MySQL安装编译时,/bin/rm: cannot remove `libtoolT': No such file or directory
- torch.nn.Module.eval
- studio创建java工程_Android studio从头一步步创建Java项目
- Oracle优化器介绍
- 二维数组传参 实例详解
- Win10 Ubuntu 制作多系统U盘
- 亚麻种子的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 计算机科学与技术专业毕业答辨问题,计算机科学与技术论文答辩问题(问题及技巧介绍)...
- 浪漫--》“慢”+“浪”
- -什么样的网站能赚钱
- android极光推送声音,【极光推送】iOS APNS 自定义铃声
- Ubuntu 16.04添加新硬盘操作流程
- 怎么在c语言中使用常用对数,【用法】在C语言中使用对数函数的方法
- ※※※※※ 488. 祖玛游戏
热门文章
- Python获取指定文件夹下的文件名
- Enterprise Solution 进销存管理软件 C/S架构,支持64位系统 物流,资金流,信息流全面集成...
- Zoho 修复Desktop Central 中的又一个严重漏洞
- 隐藏十年的 Sudo 漏洞 (CVE-2021-3156) 还影响 macOS 和 IBM IAX
- [20180626]函数与标量子查询14.txt
- 星云链智能合约开发(六):智能合约开发与部署
- 套接字socket 的地址族和类型、工作原理、创建过程
- 2016打算做运维的人员必知必晓的知识
- 面向对象进阶(day7)
- 数据分析需要权衡哪些要素?