變量存取範圍及JSP、JSTL和Struts技術中變量的存取方法

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範圍查找指定變量而後輸出。

相關文章
相關標籤/搜索