SSM拦截器
ssm框架中的拦截器
请求拦截顺序:
-
Filter过滤器
-
HandlerInterceptor拦截器 (拦截Controller之前)
-
MethodInterceptor拦截器 (拦截在Service之前, AOP属于方法拦截器)
-
Interceptor (mybatis) 属于持久层的拦截器, 例如
pageHelper
分页插件
HandlerInterceptor
拦截器的作用一般用来拦截非法请求, 例如防止未登录的状态下操作页面等
这里主要说明HandlerInterceptor
拦截器的使用
1.HandlerInterceptor接口
新建一个拦截器的类, 实现HandlerInterceptor
接口
实现接口后需要重写三个方法, 方法的参数为了方便查看, 笔记中默认省略了
public void afterCompletion()
//执行完毕,返回前拦截public void postHandle()
//处理过程中执行拦截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>