SpringMVC_拦截器笔记
来源:互联网 发布:域名购买哪个网站好 编辑:程序博客网 时间:2024/06/03 15:35
1 拦截器定义
public class HandlerInterceptor1 implements HandlerInterceptor {//进入 Handler方法之前执行//用于身份认证、身份授权//比如身份认证,如果认证通过表示当前用户没有登陆,需要此方法拦截不再向下执行@Overridepublic boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception {//return false表示拦截,不向下执行//return true表示放行return false;}//进入Handler方法之后,返回modelAndView之前执行//应用场景从modelAndView出发:将公用的模型数据(比如菜单导航)在这里传到视图,也可以在这里统一指定视图@Overridepublic void postHandle(HttpServletRequest request,HttpServletResponse response, Object handler,ModelAndView modelAndView) throws Exception {}//执行Handler完成执行此方法//应用场景:统一异常处理,统一日志处理@Overridepublic void afterCompletion(HttpServletRequest request,HttpServletResponse response, Object handler, Exception ex)throws Exception {}}
2 拦截器配置
springmvc拦截器针对HandlerMapping进行拦截设置,如果在某个HandlerMapping中配置拦截,经过该 HandlerMapping映射成功的handler最终使用该 拦截器。
<beanclass="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"><property name="interceptors"><list><ref bean="handlerInterceptor1"/><ref bean="handlerInterceptor2"/></list></property></bean><bean id="handlerInterceptor1" class="springmvc.intercapter.HandlerInterceptor1"/><bean id="handlerInterceptor2" class="springmvc.intercapter.HandlerInterceptor2"/>一般不推荐使用。
类似全局的配置
springmvc配置类似全局的拦截器,springmvc框架将配置的类似全局的拦截器注入到每个HandlerMapping中。
3 拦截器测试
两个拦截器都放行
HandlerInterceptor1...preHandle
HandlerInterceptor2...preHandle
HandlerInterceptor2...postHandle
HandlerInterceptor1...postHandle
HandlerInterceptor2...afterCompletion
HandlerInterceptor1...afterCompletion
总结:
preHandle方法按顺序执行,
postHandle和afterCompletion按拦截器配置的逆向顺序执行。
拦截器1放行 拦截器2不放行
HandlerInterceptor1...preHandle
HandlerInterceptor2...preHandle
HandlerInterceptor1...afterCompletion
总结:
拦截器1放行,拦截器2 preHandle才会执行。
拦截器2 preHandle不放行,拦截器2 postHandle和afterCompletion不会执行。
只要有一个拦截器不放行,postHandle不会执行。
两个拦截器都不放行
HandlerInterceptor1...preHandle
拦截器1 preHandle不放行,postHandle和afterCompletion不会执行。
拦截器1 preHandle不放行,拦截器2不执行。
- SpringMVC_拦截器笔记
- 拦截器笔记
- ssh拦截器笔记
- 拦截器自学笔记
- 学习笔记------------------------自定义拦截器
- 拦截器---struts2学习笔记
- struts2 学习笔记拦截器
- struts2学习笔记-----拦截器
- Struts2笔记七---拦截器
- struts2自定义拦截器笔记
- Struts拦截器学习笔记
- Struts学习笔记---拦截器
- angularjs 拦截器学习笔记
- SpringMVC 笔记--拦截器--interceptor
- struts2拦截器(interceptor) 笔记
- spring拦截器的笔记
- mybatis 拦截器Interceptor 笔记
- springMVC-笔记010-拦截器
- Oracle Demo库默认用户/密码为什么叫Scott/Tigger?
- WebKit之MediaPlayer之底层调度的源码分析
- 做无刷新上传前端体会
- java笔记-this关键词
- linux之tail命令
- SpringMVC_拦截器笔记
- 冒泡排序算法
- 使用opensmile提取音频的特征,得到特征向量,并扔进libsvm中进行分类训练测试
- R语言:关于rJava包的安装
- Plist文件的读写操作
- Category和Protocol笔记 by STP
- 解惑rJava R与Java的高速通道
- Unity手游之路<十三>手游代码更新策略探讨
- 杭电1698 just a hook (线段树)(区间更改值)