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