zoukankan      html  css  js  c++  java
  • SpringBoot---SpringMVC关于拦截器的一些问题总结

    SpringBoot---SpringMVC关于拦截器的一些问题总结

    环境:

    IDEA :2020.1

    Maven:3.5.6

    SpringBoot: 2.3.2

    1、直接在地址栏输入 http://localhost:8080/user/login

    直接在地址栏输入 http://localhost:8080/user/login (地址栏直接输入的请求方法为 GET)

    控制台输出:
    2020-08-12 21:59:50.132  WARN 14956 --- [nio-8080-exec-9] .w.s.m.s.DefaultHandlerExceptionResolver : 
    Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported]
    

    会提示不支持 GET请求, 因为我们设置了,/user/login 方法提交方法为 POST。

    这时候会被配置的自定义拦截器拦截。不会由控制器进行处理,可以通过 debug ,在Controller 里的方法打上断点测试。

    注意:虽然无法进行登录操作,但不可以在拦截器设置中去掉 "/user/login" 不拦截的设置,去掉会导致无法进行登录,url 被拦截显然是无法访问进行登录操作的。

    如果将提交方法改为 GET,输入 http://localhost:8080/user/login?username=3333&password=1234

    那么将会直接通过 /user/login 请求处理方法,处理后进行登录。

    2、SpringBoot 2.3.2 并未发现会拦截会静态资源

    如果拦截了,或者想要自定义静态资源映射目录,需要在配置类的组件中,加入对资源映射目录处理方法 addResourceHandlers ,以对外暴露资源被访问。

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
    }
    

    我的SpringBoot 版本为2.3.2 ,实现addResourceHandlers方法,也已通过 http://localhost:8080/asserts/img/bootstrap-solid.svg 访问到静态资源。

  • 相关阅读:
    课堂练习
    《你的灯亮着吗》第二篇总结
    四则运算2程序
    《你的灯亮着吗》第一篇总结
    四则运算2
    阅读计划
    四则运算
    《人月神话》读后感
    软件演化
    软件测试
  • 原文地址:https://www.cnblogs.com/l1ng14/p/13493707.html
Copyright © 2011-2022 走看看