【问题标题】:Can i read context-param using a normal java class file form web.xml file我可以使用普通的 java 类文件从 web.xml 文件中读取上下文参数吗
【发布时间】:2014-06-18 18:43:41
【问题描述】:

Web.xml

    <param-name>driver</param-name>
    <param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
<context-param>
    <param-name>url</param-name>
    <param-value>jdbc:mysql:///gts_user</param-value>
</context-param>
<context-param>
    <param-name>user_name</param-name>
    <param-value>root</param-value>
</context-param>
<context-param>
    <param-name>password</param-name>
    <param-value>gts</param-value>
</context-param>

我想使用 java 类文件从 web.xml 中获取所有值

【问题讨论】:

  • 没有。正常的 java 文件中不会有上下文。您需要上下文来读取参数。
  • 我需要什么?请指定
  • 将 servletcontext 对象传递给您的 java 对象构造函数。确保它不会影响性能...

标签: java jsp jakarta-ee servlets web.xml


【解决方案1】:

如果您有权访问ServletContext,您将能够访问所有这些context-param 元素。您可以在多个地方访问ServletConfig,即Servlet#init(..)Filter#init(..),以及大多数侦听器类型。

您要查找的方法是ServletContext#getInitParameterNames()

否则,您将不得不自己解析web.xml

【讨论】:

  • ServleContext.getInitParameterNames() 在 java 类文件中不起作用
  • @AshishSrivastava 请重新阅读我的答案。如果您可以访问 Servlet 容器提供的ServletContext,则可以使用它。否则,您将需要自己解析web.xml
  • 哦抱歉告诉我如何使用 java 获取 web.xml 文件的路径进行解析
  • @AshishSrivastava 您始终可以相对于您当前的工作目录获取它。 我只想说这是一个非常糟糕的主意,你不应该这样做。你绝对没有理由这样做。
  • @AshishSrivastava 不。您应该这样做的唯一方法是通过 ServletContext 提供的 Servlet 容器。
猜你喜欢
  • 2011-04-15
  • 2011-05-10
  • 2014-03-16
  • 2010-11-06
  • 2012-10-27
  • 1970-01-01
  • 2018-04-13
  • 1970-01-01
  • 2017-03-06
相关资源
最近更新 更多