java - 从代码中的任何位置访问 HttpContext、HttpServletRequest 和 HttpServletResponse

标签 java servlets

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

我的想法之一是创建一个全局缓存,在其中存储由当前线程散列的MyServletContext。每当我需要存储在 MyServletContext 中的任何信息时,我都会调用这个缓存,它会找到正确的对象。我知道我需要使这个缓存线程安全并且我知道如何做到这一点。 问题是:有没有更好的方法呢?

最佳答案

我曾经使用ThreadLocal来达到这个目的。创建 HttpFilter,将 HttpRequest 放入 ThreadLocal 并在代码中的任何地方使用它。

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

相关文章:

java - 将原始数组转换为装箱数组时如何减少强制转换次数

javascript - 从 html 向 servlet 发送数据

javascript - 使用 AJAX 使用 JSON 填充选项卡

java - jpa、tomcat 和 servlet 出错

java - 使用 servlet 的正确方法是什么?

java - 发生重复键时的 hashmap 自定义覆盖值

java - 如何在异步任务类中等待直到其任务完成

java - 网络应用程序。 Java EE。我应该在哪里初始化我的业务逻辑?

Java:概率分布支持

java - 使用 Java 检索 MongoDb 嵌套文档的所有键