1. 程式人生 > >jsp中四種範圍變數

jsp中四種範圍變數

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,sessionpageContext為null,application有值,關閉此瀏覽器再訪問p3.jsp,request,sessionpageContext為null,application

有值。如果在p3.jsp中

This is my p3 page. <br>

後新增程式碼

pageContext.setAttribute("scope","pagecomtext3");

訪問p3.jsp時,application會有值。

從小到大範圍:

  1. pageContext頁面,只有在同一個頁面內才會相同,儘管同一使用者不同頁面都不行。
  2. request請求,同一個使用者,值要進行傳遞才相同,沒有進行傳遞,其他頁面也不會獲得相應的值;
  3. session回話,同一回話;
  4. application專案,同一專案下,不同使用者都擁有它,共享空間,並且值相同;
這是我學習時的理解,不知道好不好用,如有錯誤還請糾正。