SpringMVC(六):拦截器(springmvc拦截器拦截路径规则)

  本篇文章为你整理了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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: