spring自定义拦截器

  • 自定义拦截器需要去实现HandlerInterceptor,并重写它的3个方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class SecurityInterceptor implements HandlerInterceptor {

//业务处理器处理之前被调用,被拦截返回false,接下去的方法不执行,反之能正常到Controller层
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
return false;
}
return true;
}

//在业务处理完成请求后,在DispatcherServlet向客户端返回响应前被调用
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("进行中");
}

//在DispatcherServlet完全处理完请求后被调用(可以在该方法进行一些资源的清理操作)
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("结束");
}
}
  • 在spring-servlet.xml中配置拦截器
<!--自定义拦截器-->
<mvc:interceptors>
    <mvc:interceptor>
        <!--对哪些资源做拦截  这里是拦截所有资源-->
        <mvc:mapping path="/**"/>
        <!--排除不需要被拦截的资源-->
        <mvc:exclude-mapping path="/login"/>
        <mvc:exclude-mapping path="/registered"/>
        <bean class="com.ssm.Interceptor.SecurityInterceptor"/>
    </mvc:interceptor>
</mvc:interceptors>
赏个🍗吧
0%