拦截器的实现
1、编写拦截器类实现HandlerInterceptor接口;
2、将拦截器注册进springmvc框架中;
3、配置拦截器的拦截规则;
其他实现方法
WebRequestInterceptor接口:
与上一个的区别是参数区别和prehandle的方法没有返回值。没有上一个功能全,因此常用第一个。
拦截器的使用场景
处理所有请求共性问题:
1、乱码问题:用request,response参数去设置编码;
2、解决权限验证问题(是否登陆,取session对象查看);
拦截器与过滤器的区别
1、拦截器Interceptor依赖于框架容器,基于反射机制,只过滤请求;
2、过滤器Filter依赖于Servlet容器,基于回调函数,过滤范围大;
例子
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; public class TestInterceptor implements HandlerInterceptor { /** * 返回值说明是否需要将当前的请求拦截下来 * false:请求将被终止 * true:请求会被继续运行 * Object handler 表示的是被拦截的请求的目标对象 */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("TestInterceptor.preHandle()"); return true; } /** * modelAndView: * 可以通过modelAndView参数改变显示的视图,或者修改发往视图的方法 */ @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("TestInterceptor.postHandle()"); } /** * 在视图加载完毕之后调用 * 常用于作于资源的销毁,流等 * 类似于析构函数 */ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("TestInterceptor.afterCompletion()"); } }
注册方式:
在springmvc的Dispatcherservlet配置文件中加入拦截器代码;
<!-- 注册拦截器 --> <mvc:interceptors> <!-- 单个拦截器:设置具体的拦截路径 --> <mvc:interceptor> <mvc:mapping path="/courses/view2/*"> <bean class="com.cc.mvcdemo.interceptor.TestInterceptor"></bean> </mvc:mapping></mvc:interceptor> <!-- 第二种方式:拦截经过当前Dispatcherservlet的所有请求 --> <bean class="com.cc.mvcdemo.interceptor.TestInterceptorTwo"></bean> </mvc:interceptors>
希望本篇文章内容对各位朋友有所帮助
本文向大家介绍SpringMVC中的拦截器详解及代码示例,包括了SpringMVC中的拦截器详解及代码示例的使用技巧和注意事项,需要的朋友参考一下 本文研究的主要是SpringMVC中的拦截器的介绍及实例代码,配置等内容,具体如下。 Springmvc的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理。本文主要总结一下springmvc中拦截器是如何定义
本文向大家介绍详解springmvc拦截器拦截静态资源,包括了详解springmvc拦截器拦截静态资源的使用技巧和注意事项,需要的朋友参考一下 springmvc拦截器interceptors springmvc拦截器能够对请求的资源路径进行拦截,极大的简化了拦截器的书写。但是,千万千万要注意一点:静态资源的放行。 上代码: 问题来了,在请求jsp页面的时候,你的静态资源的访问仍然会被自定义拦截器
本文向大家介绍浅析JAVA中过滤器、监听器、拦截器的区别,包括了浅析JAVA中过滤器、监听器、拦截器的区别的使用技巧和注意事项,需要的朋友参考一下 1.过滤器:所谓过滤器顾名思义是用来过滤的,在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的action进行业务逻辑,比如过滤掉非法url(不是login
本文向大家介绍Struts拦截器实现拦截未登陆用户实例解析,包括了Struts拦截器实现拦截未登陆用户实例解析的使用技巧和注意事项,需要的朋友参考一下 本文研究的主要是Struts拦截器实现拦截未登陆用户,具体实现如下。 首先建立一个工具类: checkPrivilegeInterceptor:这个类继承interceptor,这是一个接口,要实现三个方法,要是觉得比较多的话,可以继承他的实现类A
本文向大家介绍Vue 前端实现登陆拦截及axios 拦截器的使用,包括了Vue 前端实现登陆拦截及axios 拦截器的使用的使用技巧和注意事项,需要的朋友参考一下 该项目是利用了Github 提供的personal token作为登录token,通过token访问你的Repository List。通过这个项目学习如何实现一个前端项目中所需要的 登录及拦截、登出、token失效的拦截及对应 axi
我对和的用途有点困惑。 正如我从文档中理解的,拦截器在请求之间运行。另一方面,Filter在呈现视图之前运行,但在Controller呈现响应之后运行。 那么,拦截器中的和过滤器中的之间的区别在哪里呢?