jsp四大作用域属性范围 page request session application
番茄系统家园 · 2021-08-11 03:20:17
%@=;=UTF-8%
%@=*%
%//此时设置的属性只能够在本页中取得
(name,哈哈哈哈);//设置属性
(date,());//设置属性//注意:这里设置的两个属性的名字分别为name和date,这两个是字符串类型的数据,但对应的属性值MLDN和这个两个值却不是字符串类型,而是两个Object类型的数据。%
%//取得设置的属性
Stringname=(String)request.getAttribute(name);//由于取得的值为Object类型,因此必须使用String强制向下转型,转换成String类型
Datedate=(Date)request.getAttribute(date);%
h1姓名:%=name%/h1
h1日期:%=date%/h1
结果如图:
跳转到pageSecond.jsp之后,依然可以获得属性。不管多少个页面。
但是如果,此时使用了超链接的方式传递的话,则属性是无法向下继续传递的。
3.session属性作用域
session设置的属性不管如何跳转,都可以取得的。当然,session只针对一个用户
不管是采用页面跳转,还是超链接(相当于客户端跳转),在别的页面依然可以获取第一个页面的属性。但是新打开一个浏览器,则无法获取属性。
4.application属性作用域
因为application属性范围是在服务器上设置的一个属性,所以一旦设置之后任何用户都可以浏览到此属性。
5.pageContext属性作用域的进一步补充
PageContext类继承了JspContext类,所以在PageContext类中实现了抽象的setAttribute方法:
publicabstractvoidsetAttribute(Stringname,Objectvalue,intscope)
这个setAttribute()方法如果不写后面的int类型的scope参数,则此参数默认为PAGE_SCOPE,则此时setAttribute()方法设置的就是page属性范围,如果传递过来的int类型参数scope为REQUEST_SCOPE,则此时setAttribute()方法设置的就是request属性范围,同理,传递的scope参数为SESSION_SCOPE和APPLICATION_SCOPE时,则表示setAttribute()方法设置的就是session属性范围和application属性范围。

