1.簡單說 page指當前頁面。在一個jsp頁面裏有效 ,page裏的變量無法從index.jsp傳遞到test.jsp。只要頁面跳轉了,它們就不見了。
2.request 指從http請求到服務器處理結束,返回響應的整個過程。在這個過程當中使用forward方式跳轉多個jsp。在這些頁面裏你均可以使用這個變量。 request裏的變量能夠跨越forward先後的兩頁。可是隻要刷新頁面,它們就從新計算了。
3.Session 有效範圍當前會話,從瀏覽器打開到瀏覽器關閉這個過程。 session裏的變量一直在累加,開始還看不出區別,只要關閉瀏覽器,再次重啓瀏覽器訪問這頁,session裏的變量就從新計算了。
4.application它的有效範圍是整個應用。 做用域裏的變量,它們的存活時間是最長的,若是不進行手工刪除,它們就一直可使用 ,application裏的變量一直在累加,除非你重啓tomcat,不然它會一直變大。 瀏覽器
一個網站MyWebSite,其包含7個jsp頁面,分別爲master.jsp、top.jsp、main.jsp、foot.jsp、login.jsp、success.jsp和news.jsp。master.jsp頁面經過<include>指令包含top.jsp、main.jsp、foot.jsp三個頁面,當用戶經過login.jsp登陸成功後,進入success.jsp頁面而後經過此頁面的<forward>標籤 跳轉到master.jsp頁面中。tomcat
咱們在success.jsp頁面中加入以下代碼<c:set value="aaa" var="test1" scope=」page」 />
<c:set value="aaa" var="test2" scope=」request」 />
<c:set value="aaa" var="test3" scope=」session」 />
<c:set value="aaa" var="test4" scope=」application」 />服務器
<jsp:forward page=」master.jsp」/ >這裏一一說明session
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)。app
Test3和test4有效範圍同樣,有什麼區別呢?jsp
其實區別蠻大的,我只說明一點,假如此時又有另外一個用戶訪問master.jsp頁面,那麼test3相對於這個用戶來講就無效,而test4倒是有效的。或者當第一個登陸的用戶關閉瀏覽器後,再從新訪問master.jsp時,test3就無效,而test4卻有效。網站