专栏首页java和pythonspringmvc拦截器的使用,小白必看

springmvc拦截器的使用,小白必看

过滤器与拦截器的区别:拦截器是AOP思想的具体应用。

过滤器

servlet规范中的一部分,任何java web工程都可以使用

在url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截

拦截器

拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用

拦截器只会拦截访问的控制器方法, 如果访问的是jsp/html/css/image/js是不会进行拦截的

编写一个拦截器

public class MyInterceptor implements HandlerInterceptor {

    //在请求处理的方法之前执行
    //如果返回true执行下一个拦截器
    //如果返回false就不执行下一个拦截器
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
        System.out.println("------------处理前------------");
        return true;
    }

    //在请求处理方法执行之后执行
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
        System.out.println("------------处理后------------");
    }

    //在dispatcherServlet处理后执行,做清理工作.
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
        System.out.println("------------清理------------");
    }
}

在springmvc进行配置

    <!--关于拦截器的配置-->
    <mvc:interceptors>
        <mvc:interceptor>
            <!--/** 包括路径及其子路径-->
            <!--/admin/* 拦截的是/admin/add等等这种 , /admin/add/user不会被拦截-->
            <!--/admin/** 拦截的是/admin/下的所有-->
            <mvc:mapping path="/**"/>
            <!--bean配置的就是拦截器-->
            <bean class="com.controller.MyInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>

controller层

   @RequestMapping("/interceptor")
    @ResponseBody
    public String testFunction() {
        System.out.println("控制器中的方法执行了");
        return "hello";
    }

访问输出

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • springmvc中的拦截器使用

    拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用

    一天不写程序难受
  • springboot系列学习(七)JSR303数据校验 , 注解不能使用爆红的解决方法,后端自动的校验实体类的值是不是合法的,

    我们之前在前端,会校验我们输入的值是不是合法的,比如email,如果不是email格式那么就报错。这个是前段 的验证规则,其实后端也是可以的。这个就是JSR30...

    一天不写程序难受
  • Redis缓存系列:为什么要用nosql

    一天不写程序难受
  • springmvc中的拦截器使用

    拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用

    一天不写程序难受
  • 详解Struts2拦截器机制

         Struts2的核心在于它复杂的拦截器,几乎70%的工作都是由拦截器完成的。比如我们之前用于将上传的文件对应于action实例中的三个属性的fileU...

    Single
  • Springmvc中的转发重定向和拦截器

    爱撒谎的男孩
  • SpringBoot图文教程7—SpringBoot拦截器的使用姿势这都有

    拦截器是Spring中的概念,和过滤器类似,可以对用户请求进行拦截过滤处理。但是相对于过滤器而言,拦截器要的控制更加的细节,拦截器可以在三个地方进行执行。

    鹿老师的Java笔记
  • Springmvc拦截器拦截Ajax请求

    爱撒谎的男孩
  • Springmvc中的转发重定向和拦截器

    爱撒谎的男孩
  • Springboot项目之拦截器使用

    在Springboot项目中, 拦截器也是开发中常用手段,要来做登陆验证、性能检查、日志记录等。写个例子看看,一个拦截器、一个配置类、一个拦截器要拦截的类。

    用户1956326

扫码关注云+社区

领取腾讯云代金券