SpringMVC 配置Interceptor拦截器案例

1.拦截器作用

   SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。

2.自定义拦截器

       想要自定义拦截器,必须实现 HandlerInterceptor 接口。

 1 package com.springmvc.aftercom;
 2 
 3 import javax.servlet.http.HttpServletRequest;
 4 import javax.servlet.http.HttpServletResponse;
 5 
 6 import org.springframework.web.servlet.HandlerInterceptor;
 7 import org.springframework.web.servlet.ModelAndView;
 8 
 9 /**
10  * springmvc拦截器
11  * @author Administrator
12  *
13  */
14 public class MyInterceptor implements HandlerInterceptor{
15 
16     @Override
17     public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
18             throws Exception {
19           System.out.println("afterCompletion方法在控制器的处理请求方法执行完成后执行,即视图渲染结束之后执行");
20     }
21 
22     @Override
23     public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
24             throws Exception {
25           System.out.println("postHandle方法在控制器的处理请求方法调用之后,解析视图之前执行");
26     }
27 
28     @Override
29     public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
30           System.out.println("preHandle方法在控制器的处理请求方法调用之后,解析视图之前执行");
31         return true;
32     }
33 
34     
35 }

3.在springmvc核心配置文件中配置拦截器

1     <!-- 配置拦截器 -->
2     <mvc:interceptors>
3         <mvc:interceptor>
4             <!-- 配置拦截器作用的路径 对某个模块拦截请求 /模块名/* -->
5             <mvc:mapping path="/**" />
6             <!--拦截器方法-->
7             <bean class="com.springmvc.aftercom.MyInterceptor"></bean>
8         </mvc:interceptor>
9     </mvc:interceptors>

4.测试结果

原文地址:https://www.cnblogs.com/ysource/p/13053466.html