springmvc自定义拦截器
1、步骤
1.1、创建自定义拦截器类,实现HandlerInterceptor接口
1.2、在springmvc.xml中配置自定义拦截器
2、具体代码
2.1、自定义拦截器类
package com.ly.mvc.interceptor; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class MyInterceptor1 implements HandlerInterceptor { /** * 前处理方法,在控制器方法执行前执行 * 返回false不会执行后续拦截器以及控制器 * 返回true,若还有拦截器会继续执行后续拦截器,若没有拦截器会执行控制器的方法 */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("MyInterceptor1------preHandle"); //request.getRequestDispatcher("/WEB-INF/pages/nologin.jsp").forward(request,response); return true; } /** * 后处理方法,在控制器方法执行后,在jsp页面执行前执行 * 如果控制器方法抛出了异常,此方法不会执行了 */ @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("MyInterceptor1---postHandle"); } /** *在jsp页面执行后执行 *就算控制器方法抛出了异常,此方法也会执行 */ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("MyInterceptor1---afterCompletion"); } }
2.2、在springmvc.xml中配置自定义拦截器
<!--配置自定义拦截器--> <mvc:interceptors> <mvc:interceptor> <!--配置拦截的请求url--> <mvc:mapping path="/**"/> <!-- 配置不拦截的请求url <mvc:exclude-mapping path=""/> --> <!--配置自定义拦截器--> <bean class="com.ly.mvc.interceptor.MyInterceptor1"></bean> </mvc:interceptor> </mvc:interceptors>
相识是缘