我想要的是从我的应用程序中的任何点访问当前的 HttpServlerRequest + HttpServletResponse + HttpSession + 一些其他重要信息,例如用户数据和用户首选项。目前,我正在创建一个特殊的对象 MyServletContext,然后将其作为第一个参数传递给我所有对象的所有方法。我想摆脱这个参数,但我不确定最好的方法是什么。
我的想法之一是创建一个全局缓存,在其中存储由当前线程散列的MyServletContext。每当我需要存储在 MyServletContext 中的任何信息时,我都会调用这个缓存,它会找到正确的对象。我知道我需要使这个缓存线程安全并且我知道如何做到这一点。 问题是:有没有更好的方法呢?
最佳答案
我曾经使用ThreadLocal来达到这个目的。创建 HttpFilter,将 HttpRequest 放入 ThreadLocal 并在代码中的任何地方使用它。
关于java - 从代码中的任何位置访问 HttpContext、HttpServletRequest 和 HttpServletResponse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4303750/