定义一个拦截器
实现HandlerInterceptor接口,其中包含3个方法
// 进入Handler方法前执行
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
// return false表示拦截,不向下执行;return true表示不拦截,向下执行
return false;
}
//进入Handler方法之后,返回modelandview之前执行
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
}
// 执行Handler完成后执行
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
}
拦截器的配置
springmvc的拦截器是针对某个HandlerMapping进行拦截,如果在某个HandlerMapping中配置拦截,则经过该HandlerMapping映射成功的Handler会使用该拦截器。
springmvc的拦截器也可配置类似全局的拦截器,即将配置的拦截器注入到每个HandlerMapping中
<mvc:interceptors>
<!-- 如有多个拦截器,会顺序执行 -->
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.anjuke.skytorif.interceptor.MyInterceptor1"/>
</mvc:interceptor>
</mvc:interceptors>
本文深入探讨了Spring MVC拦截器的概念、实现及配置方法。通过详细解析拦截器接口HandlerInterceptor及其三个核心方法,阐述了如何在请求处理流程中进行预处理、响应处理以及完成处理阶段的操作。同时,介绍了拦截器的全局配置方式,展示了如何利用<mvc:interceptors>标签将特定拦截器应用于整个应用或特定路径下。
2021

被折叠的 条评论
为什么被折叠?



