zoukankan      html  css  js  c++  java
  • SpringMVC拦截器简单使用

    一、拦截器的配置

    1、传统的配置

    Xml代码 复制代码 收藏代码
    1. <bean  
    2.         class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" >  
    3.         <property name="interceptors">  
    4.            <!-- 多个拦截器,顺序执行 -->  
    5.            <list>  
    6.               <ref bean="commonInterceptor"/>  
    7.            </list>  
    8.         </property>  
    9.     </bean>  
    10.     <!--    
    11.               如果不定义mappingURL,则默认拦截所有对Controller的请求 ;    
    12.              可以使用正则表达式对url进行匹配,从而更细粒度的进行拦截(.*/entryOrJsonController.do?action=reg.*);   
    13.     -->  
    14.     <bean id="commonInterceptor" class="com.wy.interceptor.CommonInterceptor">  
    15.        <property name="mappingURL" value=".*/entryOrJsonController.do?action=reg.*"/>  
    16.     </bean>  

    2、基于注解的配置

    Xml代码 复制代码 收藏代码
    1. <!-- 拦截器 -->  
    2.     <mvc:interceptors>  
    3.         <!-- 多个拦截器,顺序执行 -->  
    4.         <mvc:interceptor>  
    5.            <mvc:mapping path="/entryOrJsonController  
    6.     @Override  
    7.     public boolean preHandle(HttpServletRequest request,   
    8.             HttpServletResponse response, Object handler) throws Exception {   
    9.         // TODO Auto-generated method stub   
    10.         log.info("==============执行顺序: 1、preHandle================");   
    11.         String url=request.getRequestURL().toString();     
    12.         if(mappingURL==null || url.matches(mappingURL)){     
    13.             request.getRequestDispatcher("/msg.jsp").forward(request, response);   
    14.             return false;    
    15.         }     
    16.         return true;   
    17.     }   
    18.   
    19.     //在业务处理器处理请求执行完成后,生成视图之前执行的动作    
    20.     @Override  
    21.     public void postHandle(HttpServletRequest request,   
    22.             HttpServletResponse response, Object handler,   
    23.             ModelAndView modelAndView) throws Exception {   
    24.         // TODO Auto-generated method stub   
    25.         log.info("==============执行顺序: 2、postHandle================");   
    26.     }   
    27.   
    28.       
    29.     @Override  
    30.     public void afterCompletion(HttpServletRequest request,   
    31.             HttpServletResponse response, Object handler, Exception ex)   
    32.             throws Exception {   
    33.         // TODO Auto-generated method stub   
    34.         log.info("==============执行顺序: 3、afterCompletion================");   
    35.     }   
    36.   
    37. }  

    注意:注释中的说明。

    完整的spring配置文件

    Java代码 复制代码 收藏代码
    1. <?xml version="1.0" encoding="UTF-8" ?>   
    2. <beans xmlns="http://www.springframework.org/schema/beans"  
    3.         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    4.         xmlns:context="http://www.springframework.org/schema/context"  
    5.         xmlns:mvc="http://www.springframework.org/schema/mvc"  
    6.         xmlns:util="http://www.springframework.org/schema/util"    
    7.         xsi:schemaLocation="   
    8.           http://www.springframework.org/schema/beans   
    9.           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
    10.           http://www.springframework.org/schema/context   
    11.           http://www.springframework.org/schema/context/spring-context-3.0.xsd   
    12.           http://www.springframework.org/schema/mvc       
    13.           http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd   
    14.           http://www.springframework.org/schema/util    
    15.           http://www.springframework.org/schema/util/spring-util-3.0.xsd">   
    16.        
    17.     <!-- 默认的注解映射的支持 ,它会自动注册DefaultAnnotationHandlerMapping 与AnnotationMethodHandlerAdapter    
    18.     <mvc:annotation-driven />   
    19.     -->   
    20.        
    21.     <!-- 配置静态资源,直接映射到对应的文件夹,不被DispatcherServlet处理,3.04新增功能,需要重新设置spring-mvc-3.0.xsd -->   
    22.     <mvc:resources mapping="/jsentryOrJsonController.do?action=reg.*);   
    23.     -->   
    24.     <bean id="commonInterceptor" class="com.wy.interceptor.CommonInterceptor">   
    25.        <property name="mappingURL" value=".*/entryOrJsonController.do?action=reg.*"/>   
    26.     </bean>   
    27.            
    28.     <!-- 处理方法级别上的@RequestMapping注解-->   
    29.     <bean   
    30.         class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >   
    31.         <property name="messageConverters">     
    32.             <util:list id="beanList">     
    33.                 <ref bean="mappingJacksonHttpMessageConverter"/>     
    34.             </util:list>     
    35.         </property>    
    36.     </bean>   
    37.        
    38.     <!--    
    39.               将指定路径的请求直接转到对应的view上,而不需要特定的controller来处理请求 .   
    40.               注意:此处的映射路径是/hello,请求时http://localhost:8080/SpringMVC/hello   
    41.               不能在hello.xxx,而不使用此种方式的映射可以加的,因为web.xml配置的是‘/’               
    42.      -->   
    43.     <mvc:view-controller path="/hello" view-name="hello" />   
    44.         
    45.     <!-- 视图解析器策略 和 视图解析器 -->   
    46.     <!-- 对JSTL提供良好的支持 -->   
    47.     <bean   
    48.         class="org.springframework.web.servlet.view.InternalResourceViewResolver">   
    49.         <!-- 默认的viewClass,可以不用配置   
    50.         <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView" />   
    51.          -->   
    52.         <property name="prefix" value="/WEB-INF/page/" />   
    53.         <property name="suffix" value=".jsp" />   
    54.     </bean>   
    55.        
    56.     <!-- 处理JSON数据转换的 -->   
    57.     <bean id="mappingJacksonHttpMessageConverter"    
    58.         class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">    
    59.         <!-- 为了处理返回的JSON数据的编码,默认是ISO-88859-1的,这里把它设置为UTF-8,解决有乱码的情况 -->    
    60.         <property name="supportedMediaTypes">     
    61.             <list>     
    62.                   <value>text/html;charset=UTF-8</value>     
    63.             </list>     
    64.         </property>     
    65.     </bean>     
    66.        
    67.     <!-- 拦截器 -->   
    68.     <mvc:interceptors>   
    69.         <!-- 多个拦截器,顺序执行 -->   
    70.         <mvc:interceptor>   
    71.            <mvc:mapping path="/entryOrJsonController/*" /><!-- 如果不配置或/*,将拦截所有的Controller -->   
    72.            <bean class="com.wy.interceptor.CommonInterceptor"></bean>   
    73.         </mvc:interceptor>   
    74.     </mvc:interceptors>   
    75.        
    76.     <!--    
    77.        ResourceBundleViewResolver通过basename所指定的ResourceBundle解析视图名。   
    78.                   对每个待解析的视图,ResourceBundle里的[视图名].class所对应的值就是实现该视图的类。   
    79.                   同样,[视图名].url所对应的值是该视图所对应的URL。   
    80.                   可以指定一个parent view,其它的视图都可以从parent view扩展。   
    81.                   用这种方法,可以声明一个默认的视图。   
    82.         
    83.     <bean id="messageSource"  
    84.         class="org.springframework.context.support.ResourceBundleMessageSource">   
    85.         <property name="basename" value="welcome" />   
    86.     </bean>   
    87.     -->   
    88.        
    89. </beans>  
  • 相关阅读:
    调参过程中的参数 学习率,权重衰减,冲量(learning_rate , weight_decay , momentum)
    mxnet框架样本,使用C++接口
    faster-rcnn中ROI_POOIING层的解读
    SVM公式推导笔记
    RNN的简单的推导演算公式(BPTT)
    优化器--牛顿法总结
    评估一个预测模型性能通常都有那些指标
    nautilus出现一闪而过现象
    PIL遇到问题解决
    使用神经网络来拟合函数y = x^3 +b
  • 原文地址:https://www.cnblogs.com/kongxc/p/8515169.html
Copyright © 2011-2022 走看看