SpringMVC-14 自定义拦截器
来源:互联网 发布:在淘宝买摩托车可靠吗 编辑:程序博客网 时间:2024/04/30 05:51
一、关于自定义拦截器
Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlerInterceptor接口
– preHandle():这个方法在业务处理器处理请求之前被调用,在该方法中对用户请求request 进行处理。如果程序员决定该拦截器对请求进行拦截处理后还要调用其他的拦截器,或者是业务处理器去进行处理,则返回true;如果程序员决定不需要再调用其他的组件去处理请求,则返回false。
– postHandle():这个方法在业务处理器处理完请求后,但是DispatcherServlet 向客户端返回响应前被调用,在该方法中对用户请求request进行处理。
– afterCompletion():这个方法在DispatcherServlet 完全处理完请求后被调用,可以在该方法中进行一些资源清理的操作。
二、拦截器方法执行顺序
三、实现自定义拦截器
四、其他配置1、实现HandlerInterceptor接口,实现三个方法
package com.weixuan.springmvc.interceptors;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;public class FirstInterceptors implements HandlerInterceptor{/** * 该方法在目标方法之前被调用. * 若返回值为 true, 则继续调用后续的拦截器和目标方法. * 若返回值为 false, 则不会再调用后续的拦截器和目标方法. * * 可以考虑做权限. 日志, 事务等. */@Overridepublic boolean preHandle(HttpServletRequest req, HttpServletResponse res,Object obj) throws Exception {System.out.println(" [preHandle] ");return true;}/** * 渲染视图之后被调用. 释放资源 */@Overridepublic void afterCompletion(HttpServletRequest req,HttpServletResponse res, Object obj, Exception e)throws Exception {System.out.println(" [afterCompletion] ");}/** * 调用目标方法之后, 但渲染视图之前. * 可以对请求域中的属性或视图做出修改. */@Overridepublic void postHandle(HttpServletRequest req, HttpServletResponse res,Object obj, ModelAndView ma) throws Exception {System.out.println(" [postHandle] ");}}2、在配置文件里面配置自定义拦截器
<!-- 配置自定义拦截器 --><mvc:interceptors><bean class="com.weixuan.springmvc.interceptors.FirstInterceptors"></bean></mvc:interceptors>
五、多个拦截器的执行顺序<mvc:interceptors></mvc:interceptors>里面还可以配置一个 <mvc:interceptor></mvc:interceptor>结点
<!-- 配置自定义拦截器 --><mvc:interceptors><bean class="com.weixuan.springmvc.interceptors.FirstInterceptors"></bean><mvc:interceptor><!-- 配置作用路径,也可以是不作用的路径 <mvc:exclude-mapping path=""/> --><mvc:mapping path="/emps"/><bean class="com.weixuan.springmvc.interceptors.SecondInterceptors"></bean></mvc:interceptor></mvc:interceptors>
都返回true
first 返回false,只执行firstinterceptor的pre方法
first true,second false
0 0
- SpringMVC-14 自定义拦截器
- springMVC 自定义拦截器
- springmvc自定义拦截器
- SpringMVC 自定义拦截器
- springmvc自定义拦截器
- springMVC自定义拦截器
- springMVC 自定义拦截器
- springMVC 自定义拦截器
- SpringMvc自定义拦截器
- SpringMVC自定义拦截器
- SpringMvc自定义拦截器
- SpringMVC自定义拦截器
- SpringMVC 自定义拦截器
- 【SpringMVC】自定义拦截器
- springMVC自定义拦截器
- SpringMVC经典系列-14自定义SpringMVC的拦截器---【LinusZhu】
- SpringMVC利用拦截器拦截自定义注解
- SpringMVC自定义拦截器详解
- 文件编码格式
- Android App框架设计之编写基类BaseActivity
- 无约束最优化方法——牛顿法、拟牛顿法、BFGS、LBFGS
- Android中 记住密码(SharedPreferences)
- 设计模式-Factory
- SpringMVC-14 自定义拦截器
- 【 D3.js 高级系列 — 6.0 】 值域和颜色
- 从中国经济谈当代技术人的责任与担当
- 完善 C# ListView 系列-可编辑单元格
- ubuntu 下 pem 转换成 ppk
- gitlab安装-登录-You have to confirm your account before continuing
- UITableViewCell自适应高度
- IOS - 页面跳转及返回 (push-pop,modal-dismiss)
- 从客户端调用后台静态方法