繁体   English   中英

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

[英]Difference between javax.servlet.ServletContext and javax.naming.Context

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

根据我的理解,ServletContext是Object,它包含从Web.xml读取的所有初始化,以便Web应用程序中的所有servlet可以共享这些全局配置。

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

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

来自ServletContext javadoc

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

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

JNDI Context javadoc

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM