首页 > 其他分享 >RequestContextHolder

RequestContextHolder

时间:2024-10-11 18:10:40浏览次数:9  
标签:HttpServletRequest RequestContextHolder RequestContextListener 如下 简析 使用

官方api说明 没有找到教程

https://www.jianshu.com/p/7b0dc8c9090e

一、RequestContextHolder简析

在Web开发中,service层或者某个工具类中需要获取到HttpServletRequest对象还是比较常见的。一种方式是将HttpServletRequest作为方法的参数从controller层一直放下传递,不过这种有点费劲,且做起来不是优雅;还有另一种则是RequestContextHolder,直接在需要用的地方使用如下方式取HttpServletRequest即可。

二、RequestContextHolder的使用

RequestContextHolder顾名思义,持有上下文的Request容器.使用是很简单的,具体使用如下:

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
        .getRequestAttributes()).getRequest();

三、常见问题

  1. 空指针问题
    启动类添加配置:
    @Bean
    public RequestContextListener requestContextListener(){
        return new RequestContextListener();
    }



标签:HttpServletRequest,RequestContextHolder,RequestContextListener,如下,简析,使用
From: https://www.cnblogs.com/songfenghua/p/18459035

相关文章

  • FeignClient的拦截器中RequestContextHolder.getRequestAttributes()值为null
    一、遇到问题在@FeignClient的拦截器中获取token,我首先获得RequestContextHolder.getRequestAttributes(),结果发现值为null。``二、资料查找内事不决问百度,感觉百度了一下,很快我发现其他人也有通用报null的问题,只是他们是出现在子线程中,所以我猜测@FeignClient调用的时候为异......
  • RequestContextHolder详解(获取request对象的四种方法)
    方法1、Controller中加参数来获取request注意:只能在Controller中加入request参数。一般,我们在Controller中加参数获取HttpServletRequest,如下所示:@RestController@RequestMapping("/gap")publicclassPlantTraceController{@PostMapping("/plantTrace")publicResult......
  • HttpServeletRequest与RequestContextHolder.getRequestAttributes.getRequest的区别
    HttpServletRequest是JavaServletAPI中的一个接口,它提供了访问HTTP请求的方法,例如获取请求参数、请求头、请求体等。它是在Servlet容器中处理HTTP请求时创建的,并在Servlet的doGet()、doPost()等方法中作为参数传递。RequestContextHolder.getRequestAttributes().getRequest......
  • RequestContextHolder获取得到Request
    RequestContextHolder获取得到Request目录RequestContextHolder获取得到Request一、问题二、使用三、RequestContextHolder初始化四、特殊情况:子线程获取得到request子线......