jsp四大作用域

2022-09-12 01:18:19 字數 1565 閱讀 3978

1.page指當前頁面有效。在乙個jsp頁面裡有效

2.request指在一次請求的全過程中有效,即從http請求到伺服器處理結束,返回響應的整個過程,存放在httpservletrequest物件中。在這個過程中可以使用forward方式跳轉多個jsp。在這些頁面裡你都可以使用這個變數。

3.session是使用者全域性變數,在整個會話期間都有效。只要頁面不關閉就一直有效(或者直到使用者一直未活動導致會話過期,預設session過期時間為30分鐘,或呼叫httpsession的invalidate()方法)。存放在httpsession物件中 

tion是程式全域性變數,對每個使用者每個頁面都有效。存放在servletcontext物件中。它的存活時間是最長的,如果不進行手工刪除,它們就一直可以使用 

page裡的變數沒法從index.jsp傳遞到test.jsp。只要頁面跳轉了,它們就不見了。  

request裡的變數可以跨越forward前後的兩頁。但是只要重新整理頁面,它們就重新計算了。  

session的變數一直在累加,開始還看不出區別,只要關閉瀏覽器,再次重啟瀏覽器訪問這頁,session裡的變數就重新計算了。此處只摘錄重要語句:

page:使用者請求的當前頁面;

request:使用者請求訪問的當前元件,以及和當前web元件共享同一使用者請求的web元件。如:被請求的jsp頁面和該頁面用指令包含的頁面以及標記包含的其它jsp頁面; 

session:同乙個http會話中的web元件共享它;

乙個**mywebsite,其包含7個jsp頁面,分別為master.jsp、top.jsp、main.jsp、foot.jsp、login.jsp、success.jsp和news.jsp。master.jsp頁面通過指令包含top.jsp、main.jsp、foot.jsp三個頁面,當使用者通過login.jsp登入成功後,進入success.jsp頁面然後通過此頁面的標籤跳轉到master.jsp頁面中。

我們在success.jsp頁面中加入如下**(此處用到jstl標籤) 

1.變數 test1 只在success.jsp內有效;

2.變數 test2  在success.jsp、master.jsp、top.jsp、main.jsp、foot.jsp中有效;

3.變數 test3 在7個頁面中都有效(包括login.jsp和news.jsp);

4.變數 test4 在整個**,當前也就是7個頁面中都有效(包括login.jsp和news.jsp)。

test3和test4有效範圍一樣,有什麼區別呢?

說明一點,假如此時又有另乙個使用者訪問master.jsp頁面,那麼test3相對於這個使用者來說就無效,而test4卻是有效的。或者當第乙個登入的使用者關閉瀏覽器後,再重新訪問master.jsp時,test3就無效,而test4卻有效。

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...