拦截器

1.所有的拦截器一定要在类中实现HandleInterceptor接口,在该接口中提供有以下几个处理拦截的操作方法:

2.写一个拦截器类com.ytinf.interceptor.ValidationInterceptor,并实现HandleInterceptor接口并覆写需要拦截的方法

3.修改spring-mvc.xml配置文件,进行拦截器的控制,所有的拦截器都要求设置一个匹配路径,而此时的匹配路径最好针对的是所有的Action。

1 <!-- 进行拦截器的访问路径的匹配 -->
2     <mvc:interceptors>
3         <mvc:interceptor>
4             <mvc:mapping path="/pages/**/*.action"/>    <!-- 定义拦截器的匹配路径 -->
5             <bean class="com.ytinf.interceptor.ValidationInterceptor"/>
6         </mvc:interceptor>
7     </mvc:interceptors>

4.观察HandleInterceptor接口中的方法,每一个拦截方法都有一个Object类型的参数handler,该handler应该是handlerMethod对象的实例,所以最好在拦截方法中先检测一下此handler是不是handlerMethod的对象,如果是再执行。

 1 @Override
 2     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
 3         if (handler instanceof HandlerMethod) { // 是否为HandleMethod类的实例
 4             HandlerMethod handlerMethod = (HandlerMethod) handler ; // 获取HandleMethod对象实例
 5             this.logger.info("【Action对象】" + handlerMethod.getBean());
 6             this.logger.info("【Action类型】" + handlerMethod.getBeanType());
 7             this.logger.info("【Action方法】" + handlerMethod.getMethod());
 8         }
 9         return true;
10     }

 

posted @ 2019-06-23 22:23  王兴龙123  阅读(179)  评论(0)    收藏  举报