拦截器

1.什么是拦截器?作用?

对于SpringMVC来说,拦截器的主要工作就是拦截用户的请求,拦截下来之后,常见的操作比如进行登陆验证,登陆系统之后,系统获取到你的请求,然后可以分析用户权限。

2.如何使用拦截器?

  主要相关类和方法:HandlerExeCutionChain 该类主要由handler和handler interceptors组成,HandlerMapping类通过getHandler方法会调用到该类。

           SpringMVC 对于一个请求可以添加多个拦截器,而这些拦截器集合中会链式调用这些拦截器,每个拦截器会顺序调用固定的方法,而这些方法定义在HandlerInterceptor中,

 这是拦截器的一个基础接口,里面有三个方法

 

boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception;

使用时机在处理请求之前

应用场景可以在该方法放入一些初始化操作,比如权限验证,日志管理等,

注意该方法返回的是一个boolean类型,如果为true,则会调用后面的拦截器和目标方法,如果为false则不会调用。

 

void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)throws Exception;

使用时机在调用了目标方法之后,准确来说是在调用了controller中定义的方法之后,但是在dispatcherservlet返回视图view之前。

应用场景根据使用的时机就知道,该拦截器可以对controller中的modelAndView对象进行操作。

 

1 <mvc:interceptors>
2     <bean class="com.jackie.springmvc.interceptors.FirstInterceptor"></bean>
3     <!-- 配置拦截器(不)作用的路径 -->
4     <mvc:interceptor>
5     <mvc:mapping path="/emps"/>
6         <bean class="com.jackie.springmvc.interceptors.SecondInterceptor"></bean>
7     </mvc:interceptor>
8 </mvc:interceptors>

 

posted @ 2017-09-24 16:28  vvning  阅读(482)  评论(0编辑  收藏  举报