jsp中四種範圍變數
阿新 • • 發佈:2019-01-27
jsp頁面中有四種範圍變數:request,session,application,pageContext。
這四種區別還是很好區分的,以我的思路方法:
有3個jsp頁面:
p1.jsp
This is my p1 page. <br> <% request.setAttribute("scope", "request"); session.setAttribute("scope", "session"); application.setAttribute("scope", "application"); pageContext.setAttribute("scope","pagecomtext"); %> <jsp:forward page="p2.jsp" ></jsp:forward>
<strong style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><span style="font-size:12px;"><span></span></span></strong>
p2.jsp
This is my p2 page. <br> request:<%= request.getAttribute("scope")%> <br> session:<%= session.getAttribute("scope")%> <br> application:<%= application.getAttribute("scope")%> <br> pagecontext:<%= pageContext.getAttribute("scope")%> <br>
p3.jsp
This is my p3 page. <br> request:<%= request.getAttribute("scope")%> <br> session:<%= session.getAttribute("scope")%> <br> application:<%= application.getAttribute("scope")%> <br> pagecontext:<%= pageContext.getAttribute("scope")%> <br>
訪問p1.jsp,會跳轉到p2.jsp頁面。同時request,session,application會有值,但是pageContext為null。為了方便開啟另一個瀏覽器單獨訪問p2..jsp,
相當於另外一個使用者,request,session,pageContext為null,application有值,關閉此瀏覽器再訪問p3.jsp,request,session,pageContext為null,application
有值。如果在p3.jsp中
This is my p3 page. <br>
後新增程式碼
pageContext.setAttribute("scope","pagecomtext3");
訪問p3.jsp時,application會有值。
從小到大範圍:
- pageContext頁面,只有在同一個頁面內才會相同,儘管同一使用者不同頁面都不行。
- request請求,同一個使用者,值要進行傳遞才相同,沒有進行傳遞,其他頁面也不會獲得相應的值;
- session回話,同一回話;
- application專案,同一專案下,不同使用者都擁有它,共享空間,並且值相同;