javax.servlet.ServletContext和javax.naming.Context之间的区别

javax.servlet.ServletContext和javax.naming.Context之间的区别,java,servlets,Java,Servlets,正如我所知,JavaServletContext和Context对象是JavaEE程序开发中常用的。但是,我不太清楚它们之间的区别,尤其是上下文类的用法 据我所知,ServletContext是包含从Web.xml读取的所有初始化的对象,这样Web应用程序中的所有servlet都可以共享这些全局配置 另一方面,我通常只在需要使用JNDI查找动态建立数据库连接时使用上下文对象。除此之外,我不清楚这个类的其他可能用法 我主要关心的是ServletContext和context类中的“context”

正如我所知,JavaServletContext和Context对象是JavaEE程序开发中常用的。但是,我不太清楚它们之间的区别,尤其是上下文类的用法

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

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

我主要关心的是ServletContext和context类中的“context”一词是否表示web应用程序中的同一事物或组件?

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

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

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

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

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


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

这个上下文类到底是什么?你是指javax.naming.Context吗?是的,亲爱的DiogoSantana,我指的是javax.naming.Context类:非常感谢,BalusC。在你提供的链接中有非常清楚的解释。亲爱的SD,谢谢你的分享。我明白你的意思。您能否进一步解释一下Context类的一些其他用法,正如您所提到的,它不仅限于在Servlet容器中使用?@ShadowScorpion添加了两个您可以访问的示例资源。还有很多,我不会说“不幸”。这只是遵循facade设计模式的类的一个典型后缀。@BalusC我同意,Context是一个非常包容的词。这可能意味着很多事情。再次感谢大家的分享。这个问题不会再困扰我了。