javaweb中的request,session,application对象,其基本作用是充当“共享区”的角色,即数据的传递存放区,但其共享的范围不尽相同,其名称代表着共享的范围。

093021272.jpg

为了说明其范围的不同,先上一张图:

091400207.png

1、当Tomcat启动时会为其中的每一个应用创建一个application对象(类名:ServletContext),且每个应用有唯一的该对象存在。

2、当《客户端1》做《app1应用》的访问时,会为其创造一个request对象,在一次请求过程中“如jsp1--->jspx”,request对象为同一个。当《客户端1》访问jsp2或再次访问jsp1都会有新的request对象产生,原有的request会被gc掉。

3、当《客户端1》对《app1应用》是第一次的访问,会有一个session对象的产生,此后《客户端1》对《app1应用》的所有的访问均使用同一个session对象。当《客户端2》对《app1》访问,也会有新的sessoin对象产生,但是其不同于《客户端1》的session。

4、三个对象都有统一的方法:设置数据时,使用.setAttribute("key",value);取数据时,使用.getAttribute("key");