Servlet-spec:<context-param> vs web.xml中的<env-entry>?</env-entry> </context-param>

时间:2012-11-02 14:09:23

标签: servlets jndi context-param

为什么Servlet specification定义了两种不同的方式(上下文参数和环境条目)来为Web应用程序提供配置参数?

这些方法各自的优点是什么(何时应该优先考虑)?

1 个答案:

答案 0 :(得分:17)

环境条目可通过JNDI获取,如果您手边没有ServletContext,可能会很有用,例如在EJBs中。 web.xml中的那个实际上是覆盖环境的最后一个优先级链。它们通常在服务器自己的配置中定义。因此,如果打算从webapp覆盖服务器指定的环境条目,那么可以通过web.xml完成。

上下文参数确实特定于webapp本身。它们仅在您手头有ServletContext时才可用,通常只在filtersservlets内(JSPs通过${initParam.someName} EL }}和listeners。它们应该用于为web应用程序中运行的过滤器,servlet和/或监听器提供配置参数。由JNDI提供它们没有多大意义,JNDI是一个简单过程的简单过程。