变量存取范围及JSP、JSTL和Struts技术中变量的存取方法

http://blog.youkuaiyun.com/yiyi735/article/details/2500567

JSP中变量的定义范围实际有5种:本地范围,页面范围(page),请求范围(request),会话范围(session)和应用程序范围(application)。
以下介绍在各种技术中的变量存取方法。
u       JSP中:
存储:
本地范围变量直接定义,如:
   String name="name in page";
page 范围变量保存在 pageContext 隐式对象中,如:
   pageContext.setAttribute("nameContext","name in pageContext");
request 范围变量保存在 request 隐式对象中,如:
   request.setAttribute("nameRequest","name in Request");
session 范围变量保存在 session 隐式对象中,如:
   session.setAttribute("nameSession","name in Session");
application 范围变量保存在 application 隐式对象中,如:
   application.setAttribute("nameApplication","name in Application");
读取:
   name: <%= name %> < br />
nameContext: <%= pageContext.getAttribute( "nameContext" ).toString() %> < br />
nameRequest: <%= request.getAttribute( "nameRequest" ).toString()  %> < br />
nameSession: <%= session.getAttribute( "nameSession" ).toString()  %> < br />
nameApplication: <%= application.getAttribute( "nameApplication" ).toString()  %>
u       JSTL中
JSTL中没有本地范围的概念。只有page,request,session和application范围的变量。
存储
使用c:set存储变量。
scope属性默认为page, 若不指定则变量存储在page范围里:
    < c:set  var = "name"  value = "name in where" />
    < c:set  var = "namePage"  value = "name in pageScope"  scope = "page" ></ c:set >
    < c:set  var = "nameRequest"  value = "name in requestScope"  scope = "request" ></ c:set >
    < c:set  var = "nameSession"  value = "name in sessionScope"  scope = "session" ></ c:set >
    < c:set  var = "nameApplication"  value = "name in ApplicationScope"  scope = "page" ></ c:set >
读取
使用c:out读取变量
c:out标签依次从page,request,session,application范围查找指定变量然后输出。也可以指定查找范围。
   nameSession -  < c:out  value = "${nameSession}"/> -  依次搜索至 session 范围,找到 nameSession 变量,然后输出。 < br />
   namePage -  < c:out  value = "${pageScope.namePage }"/> -  指定搜索范围为 page 范围 < br >
   nameRequest -  < c:out  value = "${requestScope.nameRequest }"/> -  指定搜索范围为 request 范围 < br >
   nameSession -  < c:out  value = "${sessionScope.nameSession }"/> -  指定搜索范围为 session 范围 < br >
   nameApplication -  < c:out  value = "${applicationScope.nameApplication }"/> -  指定搜索范围为 application 范围 < br >
   name -  < c:out  value = "${pageScope.name }"/>
struts
JSTL 一样,只有 page,request,session,application 范围。
存储
使用 bean:define
toScope
属性指定存储范围,默认为 page,  若不指定则变量存储在 page 范围里
读取
使用 bean:write
scope
属性指定读取范围,若没有设置此属性,则依次从 page,request,session,application 范围查找指定变量然后输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值