SSM拦截器

ssm框架中的拦截器

请求拦截顺序:

  1. Filter过滤器

  2. HandlerInterceptor拦截器 (拦截Controller之前)

  3. MethodInterceptor拦截器 (拦截在Service之前, AOP属于方法拦截器)

  4. Interceptor (mybatis) 属于持久层的拦截器, 例如pageHelper分页插件

HandlerInterceptor拦截器的作用一般用来拦截非法请求, 例如防止未登录的状态下操作页面等

这里主要说明HandlerInterceptor拦截器的使用

1.HandlerInterceptor接口

新建一个拦截器的类, 实现HandlerInterceptor接口

实现接口后需要重写三个方法, 方法的参数为了方便查看, 笔记中默认省略了

  1. public void afterCompletion() //执行完毕,返回前拦截
  2. public void postHandle() //处理过程中执行拦截
  3. public boolean preHandle() //(主要拦截的方法)在拦截点执行前拦截,如果返回true则不执行拦截点后的操作(拦截成功)返回false则不执行拦截

2. 在spring配置文件中进行配置

<!-- 配置拦截器 -->
<mvc:interceptors>
    <mvc:interceptor>
        <!-- 拦截所有user目录下面的页面 -->
        <mvc:mapping path="/user/**"/>
        <!-- mvc:exclude-mapping是另外一种拦截,它可以在你后来的测试中对某个页面进行不拦截,这样就不用在
    LoginInterceptor的preHandler方法里面获取不拦截的请求uri地址了(优选) -->
        <mvc:exclude-mapping path="/" /> <!-- 可以配置多个 -->
        <bean class="com.qust.shbz.interceptor.LoginInterceptor"></bean>			
    </mvc:interceptor>
    
    <!-- 当然也可以配置多个mvc:interceptor标签配置多个拦截器 -->
</mvc:interceptors>

拦截器执行顺序图解

posted @ 2020-06-25 11:28  zpk-aaron  阅读(401)  评论(0编辑  收藏  举报