如何理解上下文概念?

搞开发这么久了,不知道如何理解上下文这个概念。比如:有时候我们会用到相关的Context类。
[b]问题补充:[/b]
night_stalker: 是否能再再往下详细一点?

上下文即语境。一个词在不同的语境下可以有不同的含义。
"You are sick"可以是“你病了”,也可以是“你是个变态”——因应语境而不同。

Context这个类也有这么一层意思。调用的是同一个函数,凭什么让它产生不同的响应呢?
[b]因为上下文/语境不一样[/b]。

1.request对象

客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。

2.session对象

session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例

3.pageContext对象

pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本 类名也叫pageContext。

4.page对象

page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例

这些都是jsp的内置对象,通过这些对象能够做到同服务器端
的交互,从而实现程序的流程。这几个对象存在的生命周期和作用域都不相同:
application存在的时间最长,只要服务器没有关闭,就一直
其次是session>request>page

作用域也一样

举个一个假想的例子:
[code="java"]Something thing = new Something();
thing.setHe("Jim"); //he = Jim[/code]

于是下面这条语句,踢了谁取决于thing的内容……
[code="java"]kick(thing.getHe()); //kick Jim[/code]

这种情况和我们平时说的“上下文”(往往只用到了“上文”而没用到“下文”)、“语境”很相似,所以经常把 Something 或者 thing 命名为 xxxContext。
写HttpContext、PageContext...的人借用这个词,也是为了让人更容易理解,虽然这个命名往往起了反效果……

有兴趣可以看看语言学。