1

据我所知,Java ServletContext 和 Context Objects 在 Java EE 程序开发中很常见。但是,我不太确定它们之间有什么区别,尤其是上下文类的用法。

据我了解,ServletContext 是包含从 Web.xml 读取的所有初始化的对象,因此 Web 应用程序中的所有 servlet 都可以共享这些全局配置。

另一方面,我通常只在需要通过 JNDI 查找动态建立数据库连接时才使用 Context Object。除此之外,我不清楚这个类的其他可能用法。

我主要关心的是 ServletContext 和 Context 类的“上下文”字是否代表 Web 应用程序中的相同事物或组件?

4

1 回答 1

3

来自ServletContextjavadoc

定义一组 servlet 用来与其 servlet 容器通信的方法,例如,获取文件的 MIME 类型、分派请求或写入日志文件。

基本上它是 servlet 环境的访问器。任何与 servlet 相关的东西,都可以从那里得到。它实际上只对 Servlet 容器有用。

JNDI javadoc _Context

此接口表示一个命名上下文,它由一组名称到对象的绑定组成。它包含检查和更新这些绑定的方法。

这是资源的接口。您可以使用可以通过此接口检索的某个标识符配置资源。您不仅限于在 Servlet 容器中使用它。例如,您可以将网络上已连接设备的列表存储在LDAP存储库中。要访问此存储库,您可以编写自定义代码来实现该协议并与 LDAP 服务器交互,或者您可以使用LdapContext实现该类的Context类。或者,您可以使用它来查找 JDBC DataSource

不要让他们同名的事实困扰您。他们有不同的目标。

Context当您在不同的上下文中看到时,此答案可能会有所帮助。

于 2013-03-28T03:05:45.063 回答