2011-05-09 120 views
3

有两种(或多种)servlet可以共享配置参数的方法,在web.xml中声明一次?在servlets之间共享配置参数

看上去here,但它似乎并不是答案。

用例相当简单:我有两个servlet:一个将文件上载到一个目录,另一个下载它们。我很乐意仅在web.xml中登记目录/路径一次,以避免混淆/混淆。

回答

3

是的,请将<context-param>添加到您的web.xml,例如,

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

这可以被限制在Web应用程序作为一个整体,而不是单独的servlet。

然后,您可以从您的servlet中的getInitParameter(...)方法的ServletContext对象(它可以在您的servlet中使用getServletContext()获得)获得。

0

或者你可以在声明<env-entry>web.xml

<env-entry> 
    <description>This is the address of the SMTP host that shall be used to send mails 
    </description> 
    <env-entry-name>smtp.mailhost</env-entry-name> 
    <env-entry-type>java.lang.String</env-entry-type> 
    <env-entry-value>mailhost</env-entry-value> 
</env-entry> 

使用JNDI值然后可以抬起头,可以在部署时(这是如何完成的集装箱专用),而无需修改设置WAR/EAR文件。如果未设置deply-time值,则<env-entry-value>用作默认值 - 如果没有有意义的默认值可用于特定设置,则也可以省略。