SpringMVC(七)【拦截器】
SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理进行预处理和后处理,用户可以自定义一些拦截器来实现特定的功能
多个拦截器还可以形成拦截器链,按自定义的顺序进行处理
拦截器和过滤器的区别:
过滤器:是servlet规范中的一部分,任何java web工程都可以使用,在url-pattern中配置了/*之后,可以对所有访问的资源进行拦截
拦截器:是SpringMVC框架自己的,只有使用SpringMVC框架的时候才能用,拦截器是只会拦截访问的控制器方法,如果访问的是js, html, css, image或者js是不会进行拦截的
配置拦截器步骤:
1)自定义拦截器,新建一个类,实现HandlerInterceptor接口,实现后我们发现该类中没有我们需要去实现的方法,打开源码后我们发现接口中一共有三个方法,但都已经帮我们实现了,所以直接用即可
2)首先是第一个方法preHandle(HttpServletRequest request, HttpServletResponse response, Object handler),该方法要返回一个boolean,当返回true的时候,表示拦截器放行,执行下一个拦截器,如果没有拦截器则执行Controller中的方法,返回false则表示不放行,我们可以通过request参数,设置我们需要跳转的页面
3)然后尝试第二个方法,后处理,该方法没有返回值,也可以设置页面跳转
4)最后还有个方法在Controller方法中跳转页面执行后再执行,该方法不能再设置跳转页面
5)在Spring配置文件中配置拦截器,有多种配置方式,如可以设置要拦截的具体方法(常用),也可以设置不要拦截的方法,从上而下配置多个拦截器,则就是拦截器的使用顺序
6)多个拦截器最终处理结果

浙公网安备 33010602011771号