springMVC 拦截器
来源:互联网 发布:济南万达mac 编辑:程序博客网 时间:2024/06/03 20:49
通过统一拦截器从浏览器到服务器的请求来完成功能的增强。比如说请求共性问题(乱码问题、权限验证问题)、登录日志、操作日志等。
1:web.xml配置:
<filter> <description>字符集过滤器</description> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <description>字符集编码</description> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param></filter><filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern></filter-mapping>
2:拦截器实现
编辑拦截器实现类:
package com.test;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class TestInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception { System.out.println("进入到preHandle中"); return true; } @Override public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { System.out.println("进入到postHandle中"); } @Override public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { System.out.println("进入到afterCompletion中"); }}springmvc拦截器注入<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/login.do"/><!--配置拦截器拦截何种请求 path="/**"拦截所有请求--> <bean class="com.test.TestInterceptor"></bean> </mvc:interceptor></mvc:interceptors>请求login.do时首先进入拦截器perHandler中,之后进入login.do的具体请求方法中,之后进入postHandle ---afterCompletion中
拦截器方法介绍:
perHandler方法是有boolean返回值 我们是否需要把当前的请求拦截先来 return true 请求继续,return false请求终止。perHandler中的Object参数表示具体的拦截信息,也就是login.do对应的请求方法中的对象信息。
postHandle 中ModelAndView参数,可以改变login.do中具体返回视图的信息,也可以改变视图。afterCompletion 请求结束后,资源的关闭等用到。
多拦截器使用规则:
拦截器还可以implements webRequestInterceptor来实现其区别在于:1:在实现webRequestInterceptor时 perHandler 无返回值,也就是无法结束请求。
2:参数存在差异,但大同小异。
拦截器使用场景:
处理请求的一些共性问题。比如说,乱码问题、权限验证问题、session会话是否存在问题。
拦截器与过滤器的区别:
过滤器Filter依赖servlet容器,基于回调函数,过滤范围大,过滤所有请求、资源等。
拦截器Interceptor依赖框架容器,基于反射机制,只过滤请求。
0 0
- [SpringMVC] SpringMVC拦截器
- SpringMVC-----9、SpringMVC拦截器
- springMVC—springMVC拦截器
- springMVC 拦截器
- SpringMVC—拦截器
- springmvc 拦截器配置
- SpringMvc拦截器
- SpringMvc 拦截器
- springMVC 拦截器
- springmvc登录拦截器
- springMVC之拦截器
- SpringMVC使用拦截器
- springMVC 自定义拦截器
- springmvc拦截器实现
- springMVC 拦截器
- springmvc的拦截器
- SpringMVC拦截器
- springMVC拦截器
- 【C语言提高16】数组中括号与指针关系和数组名常量指针分析
- Hadoop2.2.0集群搭建
- Android性能优化之使用线程池处理异步任务
- 如何使用交叉验证(cross-validatation)
- 计算机连不上网的总结
- springMVC 拦截器
- Gradle 第五讲 之 java插件的使用
- 移动H5前端性能优化指南
- 《编程之美》——数组循环移位
- spinner改变字体颜色,大小等
- 结构风险最小化
- DOM常用API
- 查询MySQL数据占用情况
- ios 学习之 NSPredicate 模糊、精确、查询