SpringMVC_8_拦截器
1.拦截器的作用
SpringMVC的拦截器类似于servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。用户可以自定义一些拦截器来实现特定的功能。
2.拦截器和过滤器的区别
1)过滤器是JAVAEE规范的一部分,任何javaweb工程都可以使用。拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才可以使用。
2)过滤器在url-pattern中配置了/*之后,可以对所有访问进行拦截。而拦截器只是拦截对控制器方法的访问。
3.拦截器的使用流程:
1)编写拦截器类
public class MyInterceptor implements HandlerInterceptor { /** * 预处理方法,该方法在处理器之前执行 * @param request * @param response * @param handler * @return true:放行,执行下一个拦截器,如果不存在下一个拦截器,就执行处理器;false:不放行 * @throws Exception */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("拦截器1的preHandle方法执行了"); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("拦截器1的postHandle方法执行了"); } /** * 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("afterCompletion方法主要用于关闭资源"); } }
2)配置拦截器
SpringMVC.xml: <!--配置拦截器--> <mvc:interceptors> <mvc:interceptor> <!--要拦截的访问的url--> <mvc:mapping path="/user/*"/> <!--不要拦截的访问的url--> <!--<mvc:exclude-mapping path=""/>--> <bean class="com.interceptor.MyInterceptor"></bean> </mvc:interceptor> </mvc:interceptors>

浙公网安备 33010602011771号