SpringMVC 配置Interceptor拦截器案例
程序员文章站
2022-07-09 18:18:46
...
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>