springMVC拦截器Interceptor总结
程序员文章站
2022-07-09 18:10:43
...
一、使用场景
1.解决乱码问题
2.解决权限问题
二、工作流程
二、使用实例
-
web.xml(配置过滤器)
<!--配置中文乱码过滤器--> <filter> <filter-name>encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encoding</filter-name> <url-pattern>/</url-pattern> </filter-mapping>
-
testInterceptor.java(实现HandlerInterceptor接口)
//返回值:表示是否需要将当前的请求拦截下来 //true 请求继续 //false 请求终止 //o 表示被拦截请求的目标对象 @Override public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception { //对用户是否登录进行判断 if(httpServletRequest.getSession().getAttribute("user")==null){ //如果用户没有登录,就终止请求,并跳转到登录界面 httpServletRequest.getRequestDispatcher("/login").forward(httpServletRequest,httpServletResponse); return false; } return true; } //modelAndView参数改变返回视图参数或方法 @Override public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { modelAndView.addObject("msg","从拦截器修改的参数值"); } @Override public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { }
3.mvc-dispatcher-servlet.xml(注册拦截器)
<!--注册拦截器-->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/hello/**"/>
<bean class="com.mrzhang.mvcdemo.interceptor.testInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
三、与过滤器的区别
1.过滤器Filter依赖Serlet容器,基于回调函数,过滤范围大;(共性问题如乱码,以减少重复代码,便于维护)
2.拦截器interceptor依赖于框架容器,基于反射机制,只过滤请求。(处理web应用中请求的一些通用性问题)
下一篇: 转载;详解PHP实现执行定时任务
推荐阅读
-
SpringMVC(AbstractController,拦截器,注解)
-
SpringMVC拦截器与异常处理(六)
-
SpringMvc 拦截器
-
SpringMVC参数绑定学习总结【前后端数据参数传递】
-
SpringMVC拦截器配置及运行流程解析
-
SpringMVC归纳-2(Session会话、拦截器)
-
SpringMVC-拦截器做一个登录认证的小Demo
-
springMVC(二)——处理返回值、常用注解、文件上传下载、异常处理、过滤器、拦截器
-
荐 BAT高频面试系列:设计模式+Spring源码+MyBatis+SpringMVC多线程+MySQL+Redis+框架使用+数据结构算法答案和总结
-
菜鸟学SpringMVC之——Interceptor拦截器