日期:2014-05-18  浏览次数:20738 次

request pageContext Session三者什么关系
那为什么我session里面放的东西   用pageContext也能取出来?request     pageContext   Session三者什么关系呢?

------解决方案--------------------
用pageContext也能取出来?
一般用struts或者webwork之类用标签获取数据的顺序是:
先从 pageContext 再从Session的
如果指定了就不这样
------解决方案--------------------
·page范围

  具有page范围的对象被绑定到javax.servlet.jsp.PageContext对象中。在这个范围内的对象,只能在创建对象的页面中访问。可以调用pageContext这个隐含对象的getAttribute()方法来访问具有这种范围类型的对象(pageContext对象还提供了访问其他范围对象的getAttribute方法),pageContext对象本身也属于page范围。当 Servlet类的_jspService()方法执行完毕,属于page范围的对象的引用将被丢弃。page范围内的对象,在客户端每次请求JSP页面时创建,在页面向客户端发送回响应或请求被转发(forward)到其他的资源后被删除。

  ·request范围

  具有request范围的对象被绑定到javax.servlet.ServletRequest对象中,可以调用request这个隐含对象的 getAttribute()方法来访问具有这种范围类型的对象。在调用forward()方法转向的页面或者调用include()方法包含的页面中,都可以访问这个范围内的对象。要注意的是,因为请求对象对于每一个客户请求都是不同的,所以对于每一个新的请求,都要重新创建和删除这个范围内的对象。

  ·session范围

  具有session范围的对象被绑定到javax.servlet.http.HttpSession对象中,可以调用session这个隐含对象的 getAttribute()方法来访问具有这种范围类型的对象。JSP容器为每一次会话,创建一个HttpSession对象,在会话期间,可以访问 session范围内的对象。

  ·application范围

  具有application范围的对象被绑定到 javax.servlet.ServletContext中,可以调用application这个隐含对象的getAttribute()方法来访问具有这种范围类型的对象。在Web应用程序运行期间,所有的页面都可以访问在这个范围内的对象。
------解决方案--------------------
楼上标准
------解决方案--------------------
request是保存在请求当中,也就是当请求发送到服务器断,在服务器端处理完请求以后就消失了.

session是保存在服务器端的,他与每个客户相对应,可以设置最大不活动的时间,tomcat默认的是半小时不用就自动销毁.

pageContext是一个整合的对象,在jsp当中的,可以获得与该客户请求相关的request,response,out,session,application等对象