我想要的是从应用程序的任何位置访问当前的HttpServlerRequest + HttpServletResponse + HttpSession +一些其他重要信息,例如用户数据和用户首选项。目前,我正在创建一个特殊的对象MyServletContext,然后将其作为第一个参数传递给我所有对象的所有方法。我想摆脱此参数,但是我不确定什么是最好的方法。

我的想法之一是创建一个全局缓存,在其中存储由当前线程散列的MyServletContext。每当我需要存储在MyServletContext中的任何信息时,我都会调用此缓存,这将为我找到合适的对象。我知道我需要确保此缓存线程的安全,并且我知道该怎么做。
问题是:还有更好的方法吗?

最佳答案

我曾经为此目的使用ThreadLocal。创建将HttpRequest放入ThreadLocal的HttpFilter,并在代码中的任何地方使用它。

关于java - 从代码中的任何位置访问HttpContext,HttpServletRequest和HttpServletResponse,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4303750/

10-08 23:59