JSP中變量的定義範圍實際有5種:本地範圍,頁面範圍(page),請求範圍(request),會話範圍(session)和應用程序範圍(application)。session
如下介紹在各類技術中的變量存取方法。app
u JSP中:spa
存儲:對象
本地範圍變量直接定義,如:get
String name="name in page"; it
page範圍變量保存在pageContext隱式對象中,如:io
pageContext.setAttribute("nameContext","name in pageContext"); 變量
request範圍變量保存在request隱式對象中,如:搜索
request.setAttribute("nameRequest","name in Request"); 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範圍查找指定變量而後輸出。