从上面的代码,我很能体会到Context所代表的意义:公用信息、环境、容器....。所以我觉得Context翻译成上下文并不直观,按照语言使用的环境,翻译成“环境”、“容器”可能更好。
把Context翻译成“上下文”只是不直观罢了,不过也没大错。我们来看看中文的“上下文”是什么意思。我们常说听话传话不能“断章取义”,而要联系它的“上下文”来看。比如,小丽对王老五说“我爱你”,光看这句还以为在说情话呢。但一看上下文--“虽然我爱你,但你太穷了,我们还是分手吧”,味道就完全变了。从这里来看“上下文”也有“环境”的意思,就是语言的环境。
-------------------------------------------------
application(javax.servlet.ServletContext):在服务器启动后一直存在,而且所有用户共享;而且在服务器没有关闭前一直有效
session(javax.servlet.http.HttpSession):是单个客户和服务器进行的会话,也就是单个用户独享;在用户停止和服务器的操作(可以设定时间的长短)后服务器会自动将其清除
---------------------------------------------------
我的理解是:所谓上下文,它是用来存储系统的一些初始化信息,例如在jboss中通过配置文件指定了数据源,那么在jboss启动的时候就把这个文件的相关信息上下文中,于是在我们使用这个数据源的时候,就需要先获得系统的上下文,然后再通过一定的方式将数据源取出来。至于在系统启动时,是如何将这些初始化信息加载到上下文中,而上下文在程序中具体又是以什么形式体现的,应该随着系统的不同而不同。
------------------------------------
javax.servlet.ServletContext 有一个方法
ServletContext getContext(java.lang.String uripath)
它返回的是一个上下文,
我有两个问题
1,什么叫上下文?
2,这个函数的参数是一个URI,它与ServletContext存在什么联系?
-------
代表方法中参数(比如"/manage/document")这个目录下的所有东西,上下文可以在容器的server.xml文件中设定
-------
jsp中内置有一个对象application,熟悉吧?它就是ServletContext的一个子类的对象。所以你说的这个函数返回的“上下文”就是一个和application类似的东东,可以做和application一样的事情。
-----------------
上下文就是某一个目录,是一个参考点,java开发中很多地方都是相对上下文来说的,其实就是相对于那个目录说的。URL实际上就是那个目录,如URL=ip:port/dir 。
简单来说上下文就是与某些行为相关的一些信息,如某次客户端请求的相差信息,某个Servlet线程的相差信息等等,有些行为脱离了上下文就无法区分
-------------------
A naming service associates names with objects. An association between a name and an object is called a binding, and a set of such bindings is called a context. A name in a context can be bound to another context that uses the same naming conventions; the bound context is called a subcontext. For example, in a filesystem, a directory (such as /temp) is a context that contains bindings between filenames and objects that the system can use to manipulate the files (often called file handles). If a directory contains a binding for another directory (e.g., /temp/javax), the subdirectory is a subcontext.
从上面的文字来看,觉得所谓“上下文”就是一组名字和对象之间的联系,不知道这样理解对不对。。。