SpringMVC拦截器方法
SpringMVC框架提供了拦截器接口HandlerInterceptor
,使用时继承接口复写方法并进行配置即可。
在spring-mvc.xml文件中进行相应配置,使用mvc标签时要引入相应的命名空间,idea快捷键alt+enter
此处为命名空间配置
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
">
SpringMVC拦截器配置
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"></mvc:mapping> //表示拦截所有访问
<bean id="MyInterceptor" class="it.interceptor.MyInterceptor1"></bean> //继承接口的拦截器类的bean
</mvc:interceptor>
</mvc:interceptors>
preHandle()
prehandle()
方法在请求处理之前进行调用,该方法的返回值是布尔值Boolean类型的,当他返回false时,表示请求结束,后续的Interceptor和Controller都不会再执行;当返回值为true时就会继续调用下一个Interceptor的preHandle
方法
postHandle()
postHandle()
方法在当前请求进行处理之后调用,前提是preHandle
方法的返回值为true时才能被调用,且会在DispatcherServlet进行视图返回渲染之前被调用,即页面跳转之前,所以我们可以在这个方法中对Controller处理之后的ModelAndView对象进行操作。
afterCompletion()
afterCompletion()
方法在整个请求结束之后,也就是在DispatcherServlet渲染了对应的视图之后进行,前提是preHandle
方法的返回值为true