免费下载app软件的网站,网站开发客户需求,wordpress 对外请求,无锡定制化网站建设1、拦截器的配置
SpringMVC中的拦截器用于拦截控制器方法的执行
SpringMVC中的拦截器需要实现HandlerInterceptor
SpringMVC的拦截器必须在SpringMVC的配置文件中进行配置#xff1a;
bean classcom.test.interceptor.FirstInterceptor/bean
…1、拦截器的配置
SpringMVC中的拦截器用于拦截控制器方法的执行
SpringMVC中的拦截器需要实现HandlerInterceptor
SpringMVC的拦截器必须在SpringMVC的配置文件中进行配置
bean classcom.test.interceptor.FirstInterceptor/bean
ref beanfirstInterceptor/ref
!-- 以上两种配置方式都是对DispatcherServlet所处理的所有的请求进行拦截 --
mvc:interceptormvc:mapping path/**/mvc:exclude-mapping path/testRequestEntity/ref beanfirstInterceptor/ref
/mvc:interceptor
!-- 以上配置方式可以通过ref或bean标签设置拦截器通过mvc:mapping设置需要拦截的请求通过mvc:exclude-mapping设置需要排除的请求即不需要拦截的请求
--2、拦截器的三个抽象方法
SpringMVC中的拦截器有三个抽象方法
preHandle控制器方法执行之前执行preHandle()其boolean类型的返回值表示是否拦截或放行返回true为放行即调用控制器方法返回false表示拦截即不调用控制器方法
postHandle控制器方法执行之后执行postHandle()
afterComplation处理完视图和模型数据渲染视图完毕之后执行afterComplation()
3、多个拦截器的执行顺序
a若每个拦截器的preHandle()都返回true
此时多个拦截器的执行顺序和拦截器在SpringMVC的配置文件的配置顺序有关
preHandle()会按照配置的顺序执行而postHandle()和afterComplation()会按照配置的反序执行
b若某个拦截器的preHandle()返回了false
preHandle()返回false和它之前的拦截器的preHandle()都会执行postHandle()都不执行返回false的拦截器之前的拦截器的afterComplation()会执行
4. 拦截器实现
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** Date:2021/7/10* Author:ybc* Description:*/
public class TestInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(TestInterceptor--preHandle);return true;}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {}
}