在系统开发过程中,拦截器的使用可以使我们实现一些需求。如:登录认证,权限管理等,拦截器的工作核心就是将一些工作流程进行统一处理
拦截器和过滤器的区别:
过滤器过滤的是请求路径,拦截器拦截的各层方法的映射路径;由于过滤器在SpringMVC组件加载之前就开始工作,将会导致SpringMVC的一些功能组件无法使用,而拦截器是SpringMVC的功能之一,可以使用SpringMVC里面的一些组件
配置流程:
1.前台发送一个请求
2.新建一个MyInterceptor类实现HandlerInterceptor接口,并分别实现三个方法
preHandler()表示方法执行前执行的方法,也是方法执行的开关,如果返回为false则方法不执行
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception { System.out.println("方法执行前"); return true; }
afterCompletion()表示方法执行完成后,不管是否报异常均会执行
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { System.out.println("方法执行完成后"); }
postHandle()表示方法正常执行后执行的方法,报异常则不执行
扫描二维码关注公众号,回复:
6015241 查看本文章
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { System.out.println("方法执行不出异常"); }
3.在配置文件xml中对拦截器进行配置
<!-- 配置一个拦截器 --> <mvc:interceptors> <!-- 配置指定的拦截器 --> <mvc:interceptor> <!-- 过滤规则 --> <mvc:mapping path="/**"/> <mvc:exclude-mapping path="/say*"/> <bean class="cn.lch.intercept.MyIntercept"></bean> </mvc:interceptor> </mvc:interceptors>