HttpServletRequest request.setAttribute vs ThreadLocal vs RequestContextHolder

时间:2016-01-13 01:05:54

标签: servlets thread-local setattribute getattribute

我需要一个特定于请求的对象,并在Web应用程序中使用相同的对象来获取/设置值,以便为特定请求执行业务逻辑。我可以使用 request.setAttribute / request.getAttribute ,还是应该使用 ThreadLocal 。我的理解是每个请求都由来自线程池的单独线程处理。我在Spring Web Application中有这个。我也可以看到 RequestContextHolder ,不确定哪个是合适的

1 个答案:

答案 0 :(得分:0)

您希望每个特定请求都可以使用应用程序范围的属性。为此,您可以使用request.getServletContext()。setAttribute()和request.getServeltContext()。getAttribute()。 ServletContext表示应用程序,因此使用它设置的属性在应用程序的生命周期内可用,并且可以由多个请求使用。