4.1四种范围对象(小->大)****
pageContext JSP页面容器 (page对象); 当前页面有效
request 请求对象 同一次请求有效
session 会话对象 同一次会话有效
appliation 全局对象 全局有效(整个项目有效)
(1)pageContext 当前页面有效 (页面跳转后无效)
(2)request 同一次请求有效;其他请求无效(请求转发后有效;重定向后无效)
(3)session 同一次会话有效 (无论怎么跳转,都有效;关闭/切换浏览器后无效 ; 从 登陆->退出 之间 全部有效)
(4)application全局变量;整个项目运行期间 都有效 (切换浏览器 仍然有效);关闭服务、其他项目 无效
4.2 详解*
4.2.1 共有的3种方法*
以上4个对象共有的方法:
1、getAttribute(String name)*
Object getAttribute(String name):根据属性名,获取属性值
2、setAttribute(String name,Object obj)*
void setAttribute(String name,Object obj) :设置属性值(新增,修改)
setAttribute("a","b") ;//如果a对象之前不存在,则新建一个a对象 ;
如果a之前已经存在,则将a的值改为b****
3、removeAttribute(String name)****
void removeAttribute(String name):根据属性名,删除对象
1.以上的4个范围对象,通过 setAttribute()赋值,通过getAttribute()取值;
2.以上范围对象,尽量使用最小的范围。因为 对象的范围越大,造成的性能损耗越大。
->多个项目共享、重启后仍然有效 :JNDI技术
4.2.2 示例:
(1)pageContext 当前页面有效 (页面跳转后无效)****
不做请求和跳转:*
pageContext.jsp
结果:
进行请求:*
pageContext.jsp
Pc1.jsp
结果:
(2)request 同一次请求有效;其他请求无效(请求转发后有效;重定向后无效)*
Request.jsp
Rq1.jsp
请求转发:(一次请求)****
重定向:(两次请求)****
(3)session 同一次会话有效 (无论怎么跳转,都有效;关闭/切换浏览器后无效 ; 从 登陆->退出 之间 全部有效)*
Session.jsp
结果:
(4)application*
***全局变量;整个项目运行期间 都有效 (切换浏览器 仍然有效);关闭服务、其他项目 无效
Application.jsp
Ap1.jsp
结果:
更换浏览器