我正在使用JavaEE开发一个Web应用程序。我的问题是哪个是使用全局配置参数的最佳实践,我可以在每个Servlet或JSP页面中使用这些参数。
我有两种可能性:
1。使用web.xml文件及其context-param值,如:
<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();
总而言之,您认为哪种选择是最佳实践?第一个,第二个,也许是另一个......?
提前致谢!
答案 0 :(得分:1)
我同意@kolossus。虽然这两种方法都是可以接受的,但由于以下原因,使用web.xml 的 context-param值更多首选:
虽然这两种方法几乎可以同等有效地处理数据,但 web.xml 文件是复杂数据的首选选项。
当我们谈论复杂的数据时,正确地解释它也应该很容易。 web.xml 允许您以层次结构顺序获取数据,并在必要时保持父子关系。
例如:在车辆中,我们有两轮车和四轮车。在两轮车中,我们再次拥有自行车和踏板车。在踏板车中我们有Vespa。在自行车中,我们再次拥有经济型自行车和 sportsbike 。
<vehicle>
<two-wheeler>
<scooter>Vespa</scooter>
<bike>
<eco-bike>Hero</eco-bike>
<sportsbike>Ducati</sportsbike>
</bike>
</two-wheeler>
</vehicle>
在 .properties文件中表示上述数据可能会变得有点笨拙。
它采用 XML格式。因此,您的内容可以在不同系统中使用。 XML文件带有字符编码,允许不同的系统理解如何解释这个特定的文件。
.properties文件的情况与此不同。您必须专门为目标系统编码。同样,它会带来数据损坏的风险。
出于所有这些原因(可能还有更多),建议使用 web.xml文件及其context-param值。