SpringMVC拦截器介绍

前言

  拦截器是SpringMVC非常重要的一个功能,主要作用是拦截用户的请求并进行相应的处理。
  
  SpringMVC拦截器是可插拔式的设计,需要使用哪个拦截器,在配置文件配置就可以。不管是是否使用某个拦截器,对SpringMVC框架都不会有影响。

拦截器核心接口HandlerInterceptor

  在SpringMVC中定义拦截器需要实现HandlerInterceptor接口,或者继承HandlerInterceptorAdapter抽象类,就可以。

public interface HandlerInterceptor {
    boolean preHandle(HttpServletRequest var1, HttpServletResponse var2, Object var3) throws Exception;

    void postHandle(HttpServletRequest var1, HttpServletResponse var2, Object var3, ModelAndView var4) throws Exception;

    void afterCompletion(HttpServletRequest var1, HttpServletResponse var2, Object var3, Exception var4) throws Exception;
}

可以看到HandlerInterceptor 接口中有3个需要实现的方法。

  • perHandle

    SpringVC的拦截器实行的是链式调用,对于每个请求可以存在多个拦截器,每个拦截器会根据声明顺序调用。每个拦截器中最先被调用的方法是perHandle方法,可以在该方法中进行一些请求预处理操作。如果返回值是false,请求就会被拦截,后续的请求操作不会进行。在多个拦截器的时候,前一个返回true,后面的拦截器才会被调用,直到最后一个。

  • postHandle

    只有在perHandle方法返回值为true的时候才会被调用。此方法在DispaServlet在处理请求之后,渲染视图之前被调用。所以这个方法可以对Controler处理后的视图对象进行操作。

  • afterCompletion

    同样只是在perHandle反法返回为true后才能被调用。该方法在整个请求结束后会被调用。就是在DispaServlet对视图渲染之后被调用。所以该方法适合对资源进行清理。

我实现的一个用户权限拦截器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值