为什么Servlet specification定义了两种不同的方式(上下文参数和环境条目)来为Web应用程序提供配置参数?
这些方法各自的优点是什么(何时应该优先考虑)?
答案 0 :(得分:17)
环境条目可通过JNDI获取,如果您手边没有ServletContext
,可能会很有用,例如在EJBs中。 web.xml
中的那个实际上是覆盖环境的最后一个优先级链。它们通常在服务器自己的配置中定义。因此,如果打算从webapp覆盖服务器指定的环境条目,那么可以通过web.xml
完成。
上下文参数确实特定于webapp本身。它们仅在您手头有ServletContext
时才可用,通常只在filters内servlets内(JSPs通过${initParam.someName}
EL }}和listeners。它们应该用于为web应用程序中运行的过滤器,servlet和/或监听器提供配置参数。由JNDI提供它们没有多大意义,JNDI是一个简单过程的简单过程。