AOP:spring mvc 拦截器

参考文献:理器拦截器详解——跟着开涛学SpringMVC

基础知识准备:

1. ant风格的路径:

?表示任何单个字符,*表示匹配0个或任意多个字符,**表示匹配0个或更多的目录

/project/*.a  :            匹配项目根路径下所有在project路径下的.a文件 

/project/p?ttern  :     匹配项目根路径下 /project/pattern 和 /app/pXttern等,但是不包括/app/pttern

/**/example  :           匹配项目根路径下 /project/example, /project/foow/example, 和 /example等 

/app/**/dir/file.*  :匹配(Matches) /app/dir/file.jsp, /app/foo/dir/file.html,/app/foo/bar/dir/file.pdf, 和 /app/dir/file.java等 

/**/*.jsp  :                  匹配(Matches)任何的.jsp 文件

      最长匹配原则(has more characters) 说明,URL请求/project/dir/file.jsp,现在存在两个路径匹配模式/*/.jsp和/project/dir/.jsp,

那么会根据模式/project/dir/.jsp来匹配 

2. 跨域

参考:https://www.cnblogs.com/wangpenghui522/p/6284355.html

          https://www.cnblogs.com/dojo-lzz/p/4265637.html

         https://blog.csdn.net/github_37360787/article/details/54834789

spring mvc  <mvc:interceptor

参考:详述 Spring MVC 框架中拦截器 Interceptor 的使用方法

1. HandlerInterceptor接口的三个方法

preHandle  请求处理前的预处理函数

postHandle 请求处理后的后处理函数 

afterCompletion 若存在view 则在view渲染后的处理方法

2. 在<mvc:interceptors>下定义多个拦截器<mvc:interceptor>

参考: springMVC中多个拦截器Interceptor的执行顺序

 例如两个intercepter:intercepter1,intercepter2 执行顺序如下:

preHandle1   preHandle2   postHandle2   postHandle1    afterCompletion2  afterCompletion1

3. interceptor配置 (配置在spring-mvc.xml中)

<mvc:interceptors>  
   <!--  使用bean定义一个Interceptor,直接定义在mvc:interceptors根下面的Interceptor将拦截所有的请求   -->
    <!-- <bean class="com.bybo.aca.web.interceptor.Login"/> -->   
    <mvc:interceptor>  
        <!-- 进行拦截:/**表示拦截所有controller -->
        <mvc:mapping path="/**" />
       <!-- 不进行拦截 -->
        <mvc:exclude-mapping path="/index.html"/> 
<!--需要注入的拦截方法--> <bean class="com.bybo.aca.web.interceptor.Login"/> </mvc:interceptor> </mvc:interceptors>

 

posted @ 2018-09-25 15:01  弱水三千12138  阅读(158)  评论(0编辑  收藏  举报