1、拦截器的作用
2、自定义拦截器的步骤
第一步:编写拦截器类,实现HandlerInterceptor接口
- /**
- * 自定义拦截器
- */
- public class MyInterceptor1 implements HandlerInterceptor {
- /**
- * 预处理,Controller方法执行之前执行 *
- *
- * @param request
- * @param response
- * @param handler
- * @return true 放行,执行下一个拦截器,如果没有,执行Controller中的方法;false 不放行
- * @throws Exception
- */
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
- System.out.println("MyInterceptor1执行了...前111");
- //request.getRequestDispatcher("/WEB-INF/pages/error.jsp").forward(request, response);
- return true;
- }
- /**
- * 后处理方法,Controller方法执行后,success.jsp页面执行之前执行
- *
- * @param request
- * @param response
- * @param handler
- * @param modelAndView
- * @throws Exception
- */
- @Override
- public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
- System.out.println("MyInterceptor1执行了...后111");
- //request.getRequestDispatcher("/WEB-INF/pages/error.jsp").forward(request, response);
- }
- /**
- * success.jsp页面执行后,该方法会执行
- *
- * @param request
- * @param response
- * @param handler
- * @param ex
- * @throws Exception
- */
- @Override
- public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
- System.out.println("MyInterceptor1执行了...最后111");
- }
- }
第二步:配置拦截器
- <!--配置拦截器-->
- <mvc:interceptors>
- <!--配置具体的拦截器类-->
- <mvc:interceptor>
- <!--要拦截的具体的方法-->
- <mvc:mapping path="/user/*"/>
- <!--不要拦截的方法
- <mvc:exclude-mapping path=""/>-->
- <!--配置自定义拦截器对象-->
- <bean class="com.gx.interceptor.MyInterceptor1"/>
- </mvc:interceptor>
- </mvc:interceptors>