【问题标题】:Global config parameters using Servlets使用 Servlet 的全局配置参数
【发布时间】:2016-10-23 15:14:33
【问题描述】:

我正在使用 JavaEE 开发一个 Web 应用程序。我的问题是关于使用全局配置参数的最佳实践,我可以从每个 Servlet 或 JSP 页面使用。

我有这两种可能:

1.使用 web.xml 文件及其上下文参数值,例如:

<context-param>
   <param-name>myParam</param-name>
   <param-value>theValue</param-value>
</context-param>

然后以这种方式检索值:

String data = getServletConfig().getServletContext().getInitParameter("myParam");

2。使用将由具有静态属性的单例类读取的 .properties 文件。配置文件类似于:

myParam=theValue

和班级:

public class Config {

   private final static String FILE_CONFIG = "/WEB-INF/config.properties";
   private static String myParam = null;
   // more properties

   // singleton constructor and init attributes

   public static String getMyParam() {
      return myParam;
   }
   // more getters
}

所以我是这样使用的:

String data = utils.Config.getMyParam();

总而言之,您认为哪个选项是开发的最佳实践?第一个,第二个,也许另一个......?

提前致谢!

【问题讨论】:

  • 这个问题对某些人来说可能是一个基于意见的问题,但是 IMO,你基本上是在问哪个更好:JavaEE 标准提供的机制,或者一堆自定义代码在那个框架之外。这很简单:context-param 配置在那里,因为它是推荐的。您为 #2 描述的所有自定义代码都是不必要的
  • 感谢@kolossus 的回答。也许这就是重点。还有其他人吗?

标签: jsp servlets jakarta-ee web.xml properties-file


【解决方案1】:

我会同意@kolossus。虽然这两种方法都可以接受,但使用 web.xml 的上下文参数值首选,原因如下:

  1. 虽然这两种方法处理数据的效率几乎相同,但当涉及到复杂数据时,web.xml 文件是首选。

  2. 当我们谈论复杂数据时,正确解释同样的数据也应该很容易。 web.xml 允许您以分层顺序 获取数据,并在需要时维护父子关系

例如:在车辆中,我们有两轮车四轮车。在两轮车中,我们再次拥有自行车踏板车。在踏板车中,我们有 Vespa。在自行车方面,我们又有经济型自行车运动型自行车

<vehicle>
   <two-wheeler>
      <scooter>Vespa</scooter>
      <bike>
          <eco-bike>Hero</eco-bike>
          <sportsbike>Ducati</sportsbike>
      </bike>
   </two-wheeler>
</vehicle>

.properties 文件中表示上述数据 可能会有点笨拙。

  1. 它是 XML 格式。因此,您的内容可以在不同的系统中使用。 XML 文件带有字符编码,允许不同的系统理解如何解释这个特定的文件。

    .properties 文件并非如此。您必须专门针对目标系统对其进行编码。再次,它带来了另一端数据损坏的风险。

出于所有这些原因(可能还有更多原因),建议使用 web.xml 文件及其上下文参数值

【讨论】:

  • 非常感谢您的回答。你们俩都帮了我很多。问候!
猜你喜欢
  • 2020-05-17
  • 1970-01-01
  • 1970-01-01
  • 2023-01-23
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
  • 1970-01-01
  • 2017-07-31
相关资源
最近更新 更多