JSP 有四种范围

2009-07-09 18:38
2009年07月06日 星期一 下午 02:37

JSP 有四种范围,分别为Page、Request、Session、Application。所谓的Page,指的是单单一
页JSP Page 的范围。若要将数据存入Page 范围时,可以用pageContext 对象的setAttribute( )
方法;若要取得Page范围的数据时,可以使用pageContext对象的getAttribute( )方法。

一:Page

这个范例主要用来说明一个概念:若数据设为Page范围时,数据只能在同一个JSP网页上取得,其他JSP网页却无法取得该数据。

二:Request

Request 的范围是指在一JSP 网页发出请求到另一个JSP 网页之间,随后这个属性就失效。

现在将Name和Password的属性范围设为Request,当RequestScope1.jsp转向到RequestScope2.jsp时,RequestScope2.jsp也能取得RequestScope1.jsp设定的Name和Password值。不过其他的JSP网页无法得到Name和Password值,除非它们也和RequestScope1.jsp有请求的关系。

除了利用转向(forward)的方法可以存取request 对象的数据之外,还能使用包含(include)的方法。
假若我将RequestScope1.jsp 的<jsp:forward page="RequestScope2.jsp"/>
改为
<jsp:include page="RequestScope2.jsp" flush="true"/>
执行RequestScope1.jsp 时,结果还是和图5-4 一样。表示使用<jsp:include>标签所包含进来的网页,同样也可以取得Request 范围的数据。

三:Session、Application

 

 

当 我们使用getAttribute(String name)取得name 属性的值时,它会回传一个java.lang.Object,因此,我们还必须根据name 属性值的类型做转换类型(Casting)的工作。例如:若要取得String 类型的Name 属性时:
String Name = (String)pageContext.getAttribute("Name");


若是Integer 类型的Year 属性时:
Integer Year = (Integer)session.getAttribute("Year");


到目前已大约介绍完JSP 中四种范围(Scope):Page、Request、Session 和Application。假若我的数据要设为Page 范围时,则只需要:
pageContext.setAttribute("Year", new Integer(2001));
若要为Request、Session 或Application 时,就分别存入request、session 或application对象之中,如下:
request.setAttribute("Month", new Integer(12) );
session.setAttribute("Day", new Integer(27) );
application.setAttribute("Times", new Integer(10));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值