jsp变量作用域

JSP中变量的定义范围实际有5种:本地范围,页面范围(page),请求范围(request),会话范围(session)和应用程序范围(application)。

以下介绍在各种技术中的变量存取方法。

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() %>

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、付费专栏及课程。

余额充值