如何在简单的类文件中获取 ServletContext 对象?

2023-11-21

我正在创建一个简单的网络应用程序。我需要获取对该类中 ServletContext 对象的引用。我怎么才能得到它?


您最好将其作为参数传递给对象的构造函数,或使用 setter 方法设置它。

事实上,您可以获取与您的对象相关的上下文属性,并通过构造函数/设置器仅传递它。例如:

YourClass obj = 
    new YourClass((AnotherClass) servletContext.getAttribute("yourAttribute"));

一个更糟糕、更复杂的选择是:

  1. 创建一个ServletContextListener
  2. 在 web.xml 中注册它<listener><listener-class></listener-class></listener>
  3. on contextInitialized(..)得到ServletContext来自事件并将其存储在单例中 - 某处的静态字段。

或者,您可以对每个请求执行此操作,使用ServletRequestListener并将其存储在ThreadLocal反而。

然后你可以通过调用你的单例/线程本地持有者来获取该值,如下所示:

ServletContextHolder.getCurrentServletContext()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在简单的类文件中获取 ServletContext 对象? 的相关文章

  • 从 OMElement 对象获取 InputStream/io.Reader

    我有一个OMElement对象 从中我想得到一个InputStream或读者对象 我想要的是流式传输xml来自OMElement我有 没有加载到内存中 我只能得到XMLStreamReader对此表示反对 但我找不到办法得到InputStr
  • JavaEE 8 教程,在 hello1 项目上部署失败

    我正在尝试学习 Java EE 8 我遵循了官方指南https javaee github io tutorial https javaee github io tutorial 但我有这个问题 cargo maven2 plugin 1
  • Java Swing:清除JList而不触发监听器

    我的情况如下 我有一个 JList 只要在列表中进行选择 它就会触发搜索 使用 ListSelectionListener 我正在尝试使用以下命令重置列表上的选择list clearSelection 这样做的问题是使用clearSelec
  • 使用 Java 编程式 HTML 文档生成

    有谁知道如何在 Java 中以编程方式生成 HTMLDocument 对象 而不需要在外部生成字符串 然后使用 HTMLEditorKit read 来解析它 我问的两个原因 首先 我的 HTML 生成例程需要非常快 并且我认为将字符串解析
  • Maven 多模块项目结构问题

    自从过去几周构建我的 Maven 多模块项目以来 这是我的一次有趣的经历 当我决定使用 Maven 进行构建生命周期管理时 我有几个原因希望选择 Maven A 大多数开发团队都是分开的 这样每个团队都可以在项目中的单独模块上工作 例如团队
  • 如何模拟一个方面

    我目前正在使用aspectj 开发一些监控工具 因为这个工具应该是技术独立的 尽可能 所以我没有使用 Spring 进行注入 但我希望我的方面能够经过单元测试 方面示例 Aspect public class ClassLoadAspect
  • 在 Spring 中设置 WS https 调用超时 (HttpsUrlConnectionMessageSender)

    我正在尝试为 WS 调用设置超时 我延长了WebServiceGatewaySupport并尝试将发送者超时设置为如下 public Object marshalSendAndReceive Object requestPayload We
  • getClassLoader().getResource() 返回 null

    我有这个测试应用程序 import java applet import java awt import java net URL public class Test extends Applet public void init URL
  • LibGdx 如何使用 OrthographicCamera 滚动?

    我已经找了 10 个小时 字面意思 我已经完成了 我需要问一下 事情是我正在学习如何使用 LibGdx 来编写 Java 游戏 我正在做一个水平太空飞船游戏 所以 我最糟糕的问题是我不知道如何滚动 我认为绘制会更好地解释 我想绘制一个巨大的
  • JSP 标签+ scriptlet。如何启用脚本?

    我有一个使用标签模板的页面 我的 web xml 非常基本 我只是想在页面中运行一些代码 不 我对标签或其他替代品不感兴趣 我想使用不好的做法 scriptlet 哈哈 到目前为止 我收到了 HTTP ERROR 500 错误 Script
  • Vertx HttpClient getNow 不工作

    我的 vertx HttpClient 有问题 下面的代码显示使用 vertx 和纯 java 测试 GET Vertx vertx Vertx vertx HttpClientOptions options new HttpClientO
  • grails 上的同步块在 Windows 上有效,但在 Linux 上无效

    我有一个 grails 应用程序 它依赖于服务中的同步块 当我在 Windows 上运行它时 同步按预期工作 但当我在 ams linux 上运行时 会出现 StaleObjectStateException 该问题在以下示例中重现 cla
  • java 属性文件作为枚举

    是否可以将属性文件转换为枚举 我有一个包含很多设置的属性文件 例如 equipment height equipment widht equipment depth and many more like this and not all a
  • 为什么在尝试使用 Java 连接到 RDS PostgreSQL 数据库时会收到 SocketTimeoutException?

    我有一个 Spring 应用程序 我试图在 AWS 上托管 几天来我一直在努力配置 我有一个 EC2 实例 并且能够通过 SSH 连接到它 我还在 AWS 中设置了 Postgres RDS 数据库 但我无法使用 IDE 中的代码连接到它
  • 使用 Maven 3 时 Cobertura 代码覆盖率为 0%

    读完这篇文章后 将 Cobertura 与 Maven 3 0 2 一起使用的正确方法是什么 https stackoverflow com questions 6931360 what is the proper way to use c
  • 将字符串中的字符向左移动

    我是 Stack Overflow 的新手 有一道编程课的实验室问题一直困扰着我 该问题要求我们将字符串 s 的元素向左移动 k 次 例如 如果输入是 Hello World 和3 它将输出 lo WorldHel 对于非常大的 k 值 它
  • 防止 Firebase 中的待处理写入事务不起作用

    我的目标是在单击按钮时将名称插入 Cloud Firestore 中 但如果用户未连接到互联网 我不希望保存处于挂起状态 我不喜欢 Firebase 保存待处理写入的行为 即使互联网连接已恢复 我研究发现Firebase 开发人员建议使用事
  • Java泛型类型

    当我有一个界面时 public interface Foo
  • 日期时间解析异常

    解析日期时 我的代码中不断出现异常错误 日期看起来像这样 Wed May 21 00 00 00 EDT 2008 这是尝试读取它的代码 DateTimeFormatter formatter DateTimeFormatter ofPat
  • 如何在Java中跨类共享变量,我尝试了静态不起作用

    类 Testclass1 有一个变量 有一些执行会改变变量的值 现在在同一个包中有类 Testclass2 我将如何访问 Testclass2 中变量的更新值 由 Testclass1 更新 试过这个没用 注意 Testclass1和Tes

随机推荐

  • Rails 当前页面?当方法为 POST 时“失败”

    我有一个非常简单的问题 我有一页报告 每个报告都有自己的选项卡 我在用着current page 以确定应突出显示哪个选项卡 当我提交任何报告时 current page 似乎不再起作用 显然是因为请求方法是POST 这是预期的行为吗cur
  • 在 OSX Catalina 上安装用于 gem 安装的 Ruby 开发工具

    我知道这个问题有很多例子 我已经完成了这些答案中的所有内容 但 4 小时后却一无所获 我正在尝试在 Catalina 10 15 7 上安装 gem 并获得非常流行的 System Library Frameworks Ruby frame
  • 如何在 WPF 中删除鼠标悬停时按钮的发光

    我在 WPF 中使用一个简单的按钮 我已经在背景上放置了按钮的图像 我的问题是 当我将鼠标指针移动到按钮时 它会获得默认发光并覆盖作为背景给出的图像
  • Hive 中的增量/增量负载

    我有以下用例 我的应用程序有一个表多年数据 in RDBMSD B 我们已经用过sqoop将数据获取到 HDFS 并加载到按以下分区的 hive 表中年 月 现在 应用程序每天都会更新并将新记录插入 RDBMS 表中 这些更新的记录可以跨越
  • powershell 2.0重定向文件处理异常

    我正在寻找解决方案The OS handle s position is not what FileStream expected Do not use a handle simultaneously in one FileStream a
  • 为什么 LINQ 中的 Union 函数不删除重复条目?

    我正在使用 VB NET 我知道 Union 通常按 ByRef 工作 但在 VB 中 字符串通常被视为原始数据类型 因此 问题就在这里 Sub Main Dim firstFile secondFile As String resulti
  • 为什么这个 Perl 6 feed 操作符是一个“虚假语句”?

    我把这个例子取自第 10 天 Perl 6 2010 降临节日历的 Feed 操作员随着轻微的变化 uc为了 ucfirst不再存在了 my rakudo people
  • Angularjs 忽略时区

    有没有更好的方法来忽略 Angularjs 中的时区 2014 01 18 14 30 00 而不是 2014 01 18 15 30 00 function Scoper scope scope datum 2014 01 18T14 3
  • C++ 中的惰性求值

    C 没有对惰性求值的本机支持 如 Haskell 那样 我想知道是否可以以合理的方式在 C 中实现惰性求值 如果是的话 你会怎么做 编辑 我喜欢康拉德鲁道夫的回答 我想知道是否可以以更通用的方式实现它 例如通过使用参数化的惰性类 它本质上适
  • Spring中的Websocket身份验证和授权

    我一直在努力正确实现 Stomp websocket 验证 and 授权与Spring Security 对于后代 我将回答我自己的问题以提供指导 问题 Spring WebSocket 文档 用于身份验证 看起来不清楚 ATM 恕我直言
  • apache上的vue-router,子目录中的SPA,只能通过重定向访问页面

    所以我有一个在 apache 开发服务器上设置的客户端 Vue 应用程序 我这样做是为了配合生产环境 该应用程序位于子目录中 我在 vue router 上设置了 base 选项以进行匹配 如果我导航到我的虚拟主机根目录 它会正确重定向 但
  • 如何获取iframe响应头?

    有没有办法获取 iframe onload 的响应标头 我已经用谷歌搜索过它 但实际上我找不到任何有用的东西 并不真地 如果 iframe 位于同一域中 您可以访问其文档对象 其中包含一些有用的信息 例如document referrer
  • 如何将暴露给 COM 互操作的 .NET 对象标记为单线程?

    在 C 中定义 COM 可见类时 我可以在头文件中定义支持的线程模型 threading single line coclass default IComInterface threading single vi progid Exampl
  • Sass 使用与号 (&) 与类型选择器组合父级

    我在 Sass 中筑巢时遇到问题 假设我有以下 HTML p href class item Text p p href class item Text p a href class item Link a 当我尝试将样式嵌套在以下内容中时
  • 将基本类型转换/转换为派生类型

    我通过派生现有的 NET 框架类来扩展它 如何将基类型的对象转换为派生类型 public class Results Framework methods public class MyResults Results Nothing here
  • JButton ActionListener - GUI 仅在单击 JButton 后更新

    我的 JButton ActionListener 遇到问题 我在另一个类中定义了一个 doTheCleaning 方法 当调用该方法时 会对我的 GUI 进行一系列更改 public void doTheCleaning change i
  • 如何根据角度2中的按钮单击移动div滚动位置

    在 app component html 文件中 我有一个带有水平滚动的 div 元素和两个按钮 即 下一个 和 上一个 根据这些按钮单击我想移动滚动 应用程序组件 html div style height 200px div div d
  • 在 .NET Core 中使用 System.Windows

    我在 Visual Studio 2019 中有一个项目 正在从 NET Framework 4 6 迁移到 NET Core 3 1 我使用了微软的指南来移植我的项目 此处描述 我跑了便携性分析仪它表明 该项目是 100 可移植的 但对
  • CSS 响应式网格布局:网格列跨度打破最小最大

    我有一个像这样的整洁的响应式网格 grid template columns repeat auto fill minmax 200px 1fr 这使得每个网格项目的宽度至少为 200px 其中一项 红色 的宽度是其两倍 如下所示 grid
  • 如何在简单的类文件中获取 ServletContext 对象?

    我正在创建一个简单的网络应用程序 我需要获取对该类中 ServletContext 对象的引用 我怎么才能得到它 您最好将其作为参数传递给对象的构造函数 或使用 setter 方法设置它 事实上 您可以获取与您的对象相关的上下文属性 并通过