HttpServeletRequest与RequestContextHolder.getRequestAttributes.getRequest的区别

发布时间 2023-04-13 16:07:04作者: 每月工资一万八

HttpServletRequest是Java Servlet API中的一个接口,它提供了访问HTTP请求的方法,例如获取请求参数、请求头、请求体等。它是在Servlet容器中处理HTTP请求时创建的,并在Servlet的doGet()、doPost()等方法中作为参数传递。

RequestContextHolder.getRequestAttributes().getRequest()是Spring框架中的一个方法,它可以获取当前线程中的请求对象。它是通过ThreadLocal实现的,因此可以在任何地方获取当前请求对象,而不必将其作为参数传递。

区别在于HttpServletRequest是Servlet API中的一部分,而RequestContextHolder.getRequestAttributes().getRequest()是Spring框架中的一个方法。另外,HttpServletRequest是在Servlet容器中处理HTTP请求时创建的,而RequestContextHolder.getRequestAttributes().getRequest()是在Spring MVC框架中处理HTTP请求时创建的。因此,如果你正在使用Spring MVC框架,可以使用RequestContextHolder.getRequestAttributes().getRequest()来获取当前请求对象。如果你正在使用Servlet API,可以使用HttpServletRequest来获取请求对象。