拦截器的概述
自定义拦截器
和配置自定义异常差不多,自定义拦截器要实现HandlerInterceptor接口。
package com.yzx.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* 配置拦截器1
*/
public class MyInterceptiion1 implements HandlerInterceptor{
/**
* 预处理
* @param request
* @param response
* @param handler
* @return
* @throws Exception
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("MyInterceptiion1per拦截器执行了。。。。");
// 返回true表示放行,false不放行
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("拦截器中的post方法执行了。。。");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("拦截器中最后的afterCompletion方法执行了。。。");
}
}
在spring配置文件中配置拦截器交给spring管理。
<!-- 配置拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- 拦那些控制器 -->
<mvc:mapping path="/user/*"/>
<!-- 不拦哪些控制器
<mvc:exclude-mapping path=""/>-->
<!-- 注册拦截器对象 -->
<bean class="com.yzx.interceptor.MyInterceptiion1"></bean>
</mvc:interceptor>
<!-- 配置多个就再加
<mvc:interceptor> </mvc:interceptor>
-->
</mvc:interceptors>