欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 前端技术 > javascript >内容正文

javascript

springboot 控制台输出错误信息-ag凯发k8国际

发布时间:2024/10/12 javascript 25 豆豆
ag凯发k8国际 收集整理的这篇文章主要介绍了 springboot 控制台输出错误信息_高级码农spring boot实战进阶之过滤器、拦截器的使用... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

  过滤器是处于客户端与服务器资源文件之间的一道过滤网,在访问资源文件之前,通过一系列的过滤器对请求进行修改、判断等,把不符合规则的请求在中途拦截或修改。也可以对响应进行过滤,拦截或修改响应。

1、自定义一个timefilter类

2、配置方式

  • @webfilter注解的urlpatterns属性配置了哪些请求可以进入该过滤器,/*表示所有请求。
  • 除了在过滤器类上加注解外,我们也可以通过filterregistrationbean来注册过滤器。定义一个timefilterconfig类,加上@configuration注解表明其为配置类,然后通过filterregistrationbean来注册过滤器。

3、项目演示

控制台输出

  • 【过滤器】开始执行
  • controller:hello world!
  • 【过滤器】耗时:26ms
  • 【过滤器】结束执行

  拦截器,是面向切面编程(aop,aspect oriented program)的。就是在service或者一个方法前调用一个方法,或者在方法后调用一个方法。比如动态代理就是拦截器的简单实现,在调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在调用方法后打印出字符串,甚至在抛出异常的时候做业务逻辑的操作。

1、定义一个timeinterceptor类

2、在timeinterceptorconfig中通过interceptorregistry注册过滤器。

3、项目演示

控制台输出

  • 【拦截器】处理前
  • com.boot.filter.controller.hellocontroller
  • controller:hello world!
  • 【拦截器】处理中
  • 【拦截器】耗时:22ms
  • 【拦截器】处理后
  • 【拦截器】耗时:22ms

主要区别:

  • 拦截器是基于java的反射机制的,而过滤器是基于函数回调。
  • 拦截器不依赖于servlet容器,过滤器依赖于servlet容器。
  • 拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
  • 拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
  • 在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次
  • 拦截器可以获取ioc容器中的各个bean(基于factorybean接口 ),而过滤器就不行,在拦截器里注入一个service,可以调用业务逻辑。
  • 本质区别:   

    从灵活性上说拦截器功能更强大些,filter能做的事情它都能做,而且可以在请求前,请求后执行,比较灵活。filter主要是针对url地址做一个编码的事情、过滤掉没用的参数、安全校验,其他的还是建议用interceptor。

    执行顺序:

    • 【过滤器】开始执行
    • 【拦截器】处理前
    • com.boot.filter.controller.hellocontroller
    • controller:hello world!
    • 【拦截器】处理中
    • 【拦截器】耗时:20ms
    • 【拦截器】处理后
    • 【拦截器】耗时:20ms
    • 【过滤器】耗时:27ms
    • 【过滤器】结束执行

    过滤前-----拦截前-----action处理-----拦截后-----过滤后。

    总结

    以上是ag凯发k8国际为你收集整理的springboot 控制台输出错误信息_高级码农spring boot实战进阶之过滤器、拦截器的使用...的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

    • 上一篇:
    • 下一篇:
    网站地图