前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringMVC--拦截器笔记

SpringMVC--拦截器笔记

作者头像
SuperHeroes
发布2018-05-31 13:44:22
3760
发布2018-05-31 13:44:22
举报
文章被收录于专栏:云霄雨霁云霄雨霁

定义拦截器: 实现HandlerInterceptor接口。接口中提供三个方法。 1、进入Handler方法之前执行 //可以用于身份认证、身份授权,return false表示拦截;return true表示放行。 public boolean preHandler(HttpServletRequest request,     HttpServletResponse response, Object handler) throws Exception{} 2、进入Handler方法之后,返回ModelAndView之前执行 //应用场景:将公用的模型数据(比如菜单导航)在这里传到视图,也可以在这里统一视图 public void postHandler(HttpServletRequest request,     HttpServletResponse response, ModelAndView modelAndView) throws Exception{} 3、Handler方法执行完成后执行此方法 //应用场景:统一异常处理,统一日志处理。 public void afterCompletion(HttpServletRequest request,     HttpServletResponse response,Exception ex)throws Exception{}

拦截器配置: 1、springmvc拦截器针对HandlerMapping进行拦截设置。 如果在某个HandlerMapping中配置拦截,经过该HandlerMapping映射成功的Handler最终才使用该拦截器。 不推荐使用,比较麻烦。

2、springmvc配置类似全局的拦截器,springmvc框架将配置的类似全局的拦截器注入到每一个HandlerMapping中。 <!--拦截器--> <mvc:interceptors>     <!--多个拦截器顺序执行-->     <mvc:interceptor>         <!--/**表示所有url包括子url路径-->         <mvc:mapping path="/**"/>         <bean class="拦截器1的全限定名"></bean>     </mvc:interceptor>     <mvc:interceptor>         <!--/*表示匹配根目录下的所有url不包括子url路径-->         <mvc:mapping path="/*"/>         <bean class="拦截器2的全限定名"></bean>     </mvc:interceptor> </mvc:interceptors>

注意: 拦截器1放行,拦截器2的preHandle才会执行; 拦截器2 preHandle不放行,拦截器2 的postHandle和afterCompletion不会执行; 只要有一个拦截器不放行,postHandle不会执行。 比如登录认证拦截器放在拦截器链接中的第一个位置,权限校验拦截器放在之后。因为登录通过后才校验权限。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.04.16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档