Spring 拦截器的使用

来源:互联网 发布:angular 1.0.7.min.js 编辑:程序博客网 时间:2024/05/21 21:39

在applicationContext.xml 中配置如下:(此配置拦截 /dynamic/dynamic.do中  action 以 checklogin  字符串结尾的请求)

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <mvc:interceptors>    
  2.        <mvc:interceptor>    
  3.            <!--设置拦截的路径  mvc:mapping指定到哪个action ,  用mappingURL匹配方法-->    
  4.            <mvc:mapping path="/dynamic/dynamic.do" />    
  5.            <bean class="com.weshare.common.web.LoginInterceptorController">   
  6.                 <property name="mappingURL" value="^.*checklogin$" />  
  7.            </bean>    
  8.        </mvc:interceptor>    
  9.    </mvc:interceptors>    


拦截器类: 说明都在注释里面

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. public class LoginInterceptorController extends HandlerInterceptorAdapter {  
  2.   
  3.     public LoginInterceptorController() {  
  4.         // TODO Auto-generated constructor stub  
  5.     }  
  6.   
  7.     private String mappingURL;// 利用正则映射到需要拦截的路径  
  8.   
  9.     public void setMappingURL(String mappingURL) {  
  10.         this.mappingURL = mappingURL;  
  11.     }  
  12.   
  13.     /** 
  14.      * 在Controller方法前进行拦截 
  15.      */  
  16.     public boolean preHandle(HttpServletRequest request,  
  17.             HttpServletResponse response, Object handler) throws Exception {  
  18.         /* 在aC-context.xml中匹配的 /dynamic/dynamic.do, 在这里匹配action 拦截对应的方法 
  19.         String url = request.getRequestURL().toString();  /dynamic/dynamic.do 
  20.         request.getParameter("action");   addDynamic 
  21.         */  
  22.         String url = request.getParameter("action");  
  23.         if (mappingURL == null || url.matches(mappingURL)) {  
  24.             System.out.println("匹配成功、");  
  25.             //TODO  
  26.             return true;  
  27.         }  
  28.         System.out.println("preHandle()");  
  29.         return true;  
  30.     }  
  31.   
  32.     /** 
  33.      * This implementation is empty. 
  34.      */  
  35.     public void postHandle(HttpServletRequest request,  
  36.             HttpServletResponse response, Object handler,  
  37.             ModelAndView modelAndView) throws Exception {  
  38.         System.out.println("postHandle()");  
  39.     }  
  40.   
  41.     /** 
  42.      * 在Controller方法后进行拦截 
  43.      */  
  44.     public void afterCompletion(HttpServletRequest request,  
  45.             HttpServletResponse response, Object handler, Exception ex)  
  46.             throws Exception {  
  47.         System.out.println("afterCompletion()");  
  48.     }  
  49.   
  50. }  
0 0