JSP的四大作用域

2021-10-13 09:59:47 字數 2247 閱讀 9417

為了根據不同的情況去進行資料的儲存、傳遞等等,jsp中給出了四大作用域以滿足不同的使用情況

作用域描述

pagecontext

當前頁生效

request

一次請求中生效

session

一次會話中生效

整個web中生效

session作用域:

session作用域比較容易理解,同一瀏覽器對伺服器進行多次訪問,在這多次訪問之間傳遞資訊,就是session作用域的體現。如果把變數放到session裡,就說明它的作用域是session,它的有效範圍是當前會話。所謂當前會話,就是指從使用者開啟瀏覽器開始,到使用者關閉瀏覽器這中間的過程。這個過程可能包含多個請求響應。也就是說,只要使用者不關瀏覽器,伺服器就有辦法知道這些請求是乙個人發起的,整個過程被稱為乙個會話(session),而放到會話中的變數,就可以在當前會話的所有請求裡使用。

request作用域:

乙個http請求的處理可能需要多個servlet合作,而這幾個servlet之間可以通過某種方式傳遞資訊,但這個資訊在請求結束後就無效了。request裡的變數可以跨越forward前後的兩頁。但是只要重新整理頁面,它們就重新計算了。如果把變數放到request裡,就說明它的作用域是request,它的有效範圍是當前請求週期。 所謂請求週期,就是指從http請求發起,到伺服器處理結束,返回響應的整個過程。在這個過程中可能使用forward的方式跳轉了多個jsp頁面,在這些頁面裡你都可以使用這個變數。

page作用域:

page物件的作用範圍僅限於使用者請求的當前頁面,對於page物件的引用將在響應返回給客戶端之後被釋放,或者在請求被**到其他地方後被釋放。page裡的變數只要頁面跳轉了,它們就不見了。如果把變數放到pagecontext裡,就說明它的作用域是page,它的有效範圍只在當前jsp頁面裡。從把變數放到pagecontext開始,到jsp頁面結束,你都可以使用這個變數。

注意:以上介紹的作用範圍越來越小,request和page的生命週期都是短暫的,它們之間的區別:乙個request可以包含多個page頁(include,forward及filter)。

下面是作用域:

<

%request.

setattribute

("name"

,"小黑");

setattribute

("name"

,"小花");

session.

setattribute

("name"

,"小紅");

pagecontext.

setattribute

("name"

,"小綠");

%>

<

%--當多個域中有相同的key時,按照作用域的大小,從小到大查詢--

%>

$

四大作用域的簡單**介紹:

<

%//當前頁

pagecontext.

setattribute

("pagecontext"

,"當前頁生效");

//請求中

request.

setattribute

("request"

,"一次請求中生效");

//一次會話

session.

setattribute

("session"

,"一次會話中生效");

//全域性作用域

setattribute(,

"整個web專案中");

//請求**

"show.jsp").forward(request,response);

%>

pagecontext:

<

%=pagecontext.

getattribute

("pagecontext")%

>

request:

<

%=request.

getattribute

("request")%

>

session:

<

%=session.

getattribute

("session")%

>

<

getattribute()

%>

JSP四大作用域

1.page裡的變數 只要頁面跳轉了,它們就不見了。如果把變數放到pagecontext裡,就說明它的作用域是page,它的有效範圍只在當前jsp頁面裡。從把變數放到pagecontext開始,到jsp頁面結束,你都可以使用這個變數。2 request裡的變數可以跨越forward前後的兩頁。但是只...

jsp四大作用域

session作用域 如果把變數放到session裡,就說明它的作用域是session,它的有效範圍是當前會話。所謂當前會話,就是指從使用者開啟瀏覽器開始,到使用者關閉瀏覽器這中間的過程。object httpsession.getattribute string name 從session中獲取資...

JSP四大作用域

1 servletcontext域物件 代表整個web應用的物件 生命週期 在web應用被載入之後立即建立servletcontext物件,伺服器關閉或者web應用被移出容器時將會銷毀servletcontext物件。作用範圍 整個web應用。主要功能 在整個web應用範圍內實現資源的共享。2 se...