SpringMvc拦截器和概念,配置!!!
用于拦截请求,过滤后再拦截
拦截器实现原理 : 拦截器是基于Spring的AOP实现
-
在Handler业务逻辑执行之前拦截一次
-
在Handler逻辑执行完毕但未跳转页面之前拦截一次
-
在跳转页面之后拦截一次
实现HandlerInterceptor接口
配置拦截器
package cn.zys.lanjieqi; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; public class MyZhujieqi implements HandlerInterceptor{ //在请求处理方法之前执行 //如果返回true 执行下一个拦截器 //如果返回false 就不执行下一个
//在请求handler之前执行
//* @param request 请求对象
//* @param response 响应对象
//* @param handler 被拦截的Controller对象
@Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // TODO Auto-generated method stub System.out.println("处理前~~"); return true; } //在请求处理方法之后执行 @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { // TODO Auto-generated method stub System.out.println("处理后~~"); HandlerInterceptor.super.postHandle(request, response, handler, modelAndView); } //DispatcherServlet 处理后执行 --适合做一些清理工作 @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // TODO Auto-generated method stub HandlerInterceptor.super.afterCompletion(request, response, handler, ex); } }
配置mvc.xml
<!-- 拦截器的配置 --> <mvc:interceptors> <!-- 配置一个拦截器 --> <mvc:interceptor> <!-- /**此路径下的所有子路径 --> <mvc:mapping path="/**"/> <bean class="cn.zys.lanjieqi.MyZhujieqi"></bean> </mvc:interceptor> </mvc:interceptors>