springmvc 拦截器的使用小结

本文详细介绍了Spring MVC框架中的拦截器机制,包括如何实现HandlerInterceptor接口创建拦截器,以及通过配置拦截器链来控制请求处理流程。具体探讨了preHandle、postHandle和afterCompletion三个关键方法的应用场景。

/**
*
*
*
* 拦截器的作用:
* 每个请求到达Controller之前,或者每个响应到达view之前,都可以进行拦截。
* 1.全局日志(谁提交了请求,要做什么事)
* 2.权限管理(每个请求都能判断权限)
* 代码:
* 写一个类,实现springframework.web.servlet.HandlerInterceptor接口
* preHandle请求前拦截(尚未执行Controller)
* postHandle控制器执行完,生成视图之前可以加入的动作(加入模型中的公共部分,如版权信息)
* afterCompletion 释放资源,比如在pre中打开了数据库链接,在这里可以进行关闭
*


* 这三个方法根据业务选,不实不编写代码就可以了。
* 可以使用IOC给拦截器类的成员变量赋值

 

如 

@Autowired

private   XXXservice   xxxservice;
*

三个方法都可以得到 HttpServletRequest  和  HttpServletResponse  ,  postHandle还能得到ModelAndView对象

 


* 设置拦截器链
* <mvc:interceptors>
*     <mvc:interceptor>
*         <mvc:mapping path=""/>  值为可选项。若不指定值,则默认拦截所有请求; 若指定值,则只拦截符合一定模式的请求(注意:配置标签必须加上,否则启动报错)。
*                                 例子:<mvc:mapping path="/user/*"/>  eg:拦截user/下的所有请求
*         <bean class="com.my.common.MyInterceptor"></bean>
*     </mvc:interceptor>
*
*     <mvc:interceptor>  拦截器链中的第二个
*  </mvc:interceptor>

* </mvc:interceptors>
*

处理流程

1请求沿着拦截器①--拦截器②…拦截器N的preHandle方法执行,最终到达控制器

2在控制器执行完毕,将要生成视图之前依次执行拦截器N--拦截器N-1….拦截器②---拦截器①中的postHandle方法。
*
*/

转载于:https://www.cnblogs.com/qq-757617012/p/4593002.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值