本篇文章为你整理了SpringMVC(六):拦截器(springmvc拦截器拦截路径规则)的详细内容,包含有springmvc拦截器原理 springmvc拦截器拦截路径规则 springmvc拦截器不起作用 springmvc实现拦截器两种方式 SpringMVC(六):拦截器,希望能帮助你了解 SpringMVC(六):拦截器。
之前在学习servlet和jsp时学习了过滤器Filter,使用过滤器需要实现Filter接口,它能够在请求到servlet之前拦截请求,并且根据需求对请求进行相应的处理。
拦截器跟过滤器非常相似,SpringMVC拦截器是通过实现HandlerInterceptor接口实现的,它其实是AOP的一种应用。
这个接口与三个方法,我们来看一下源码:
public interface HandlerInterceptor {
default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
return true;
default void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
default void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
}
preHandle是在Handler执行之前执行;
postHandle是在Handler执行成功之后执行;
afterCompletion是在请求处理完毕后执行。
下面我们来具体实现一下:
实现接口:
public class UserInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
if (session.getAttribute("UserName") != null) {
return true;
response.sendRedirect("/tlp");
return false;
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
return true是给其他拦截器放行。
在Spring配置文件中配置拦截器:
mvc:interceptors
mvc:interceptor
mvc:mapping path="/user/**"/
bean /
/mvc:interceptor
/mvc:interceptors
这里是对/user下面的所有请求进行拦截。
(本文仅作个人学习记录用,如有纰漏敬请指正)
以上就是SpringMVC(六):拦截器(springmvc拦截器拦截路径规则)的详细内容,想要了解更多 SpringMVC(六):拦截器的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。