Spring拦截器
2020-09-05 08:18:26 11 举报
AI智能生成
拦截器
作者其他创作
大纲/内容
与过滤器Filter的区别
Filter是拦截web访问的url地址。只适用于web中,依赖于Servlet容器,利用Java的回调机制进行实现
Filter与框架无关,可以控制最初的Http请求,但是更细一点的类和方法控制不了
可以拦截到方法的request和response,并对请求响应做出响应的过滤动作
常用于设置字符编码,鉴权操作等
与AOP拦截器的区别
只能拦截Spring管理的Bean
实际中AOP一般与事务相结合
AOP链接后,可以获取执行方法的参数,对方法进行统一处理
Aspect:可以自定义切入点,有方法的参数,但是拿不到http请求,可以通过其他的方式通知
常作用于日志,事务,请求参数等
通过HandlerInterceptor实现
preHandle()
在Controller执行之前执行,通常用于做参数校验、登录认证等
postHandle()
在Controller之后执行,需要注意的是,当Controller中发生异常的时候,并不会执行postHandle,而是跳过后执行afterCompletion方法
afterCompleton()
在postHandle执行之后执行,发生异常也会执行,通常用于释放资源
Interceptor拦截器
拦截器拦截以.action结尾的url,拦截Action的访问。是基于Java的反射机制(AOP思想)进行实现,不依赖Servlet容器
三个拦截器方法的实现:preHandle、afterCompletion、postHandle
可以控制请求的控制器的方法,但控制不了请求方法里面的参数
用于处理页面提交的请求响应并进行处理,例如做国际化,主题更换
0 条评论
下一页