91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JSP四大作用域及其請求范圍

發布時間:2021-08-18 10:24:37 來源:億速云 閱讀:200 作者:chen 欄目:編程語言

這篇文章主要介紹“JSP四大作用域及其請求范圍”,在日常操作中,相信很多人在JSP四大作用域及其請求范圍問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JSP四大作用域及其請求范圍”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

程序員在寫代碼的時候,難免會遇到作用域的問題,今天我們要談的也是JSP的四大作用域。本文主要總結了JSP四大作用域page、request、session和application和它們的請求范圍。

1、page

page直譯就是頁面的意思,所以page作用域就比較好理解了——page作用域表示只在當前頁面有效,也就是用戶請求的頁面有效。當當前頁面關閉或轉到其他頁面時,page對象將在響應回饋給客戶端后釋放。當程序運行跑出了當前的頁面,你就無法在其它的頁面訪問當前頁面設置的屬性值。

我們都知道,JSP最終會被編譯成Servlet文件。在Servlet容器中,每個Servlet都只存在一個實例。但是對于page作用域的屬性來說,在當前頁面設置的屬性只在本次訪問該頁面有效,當你再次訪問該頁面時,又會重新初始化頁面的屬性。例如以下代碼:

<%

out.print(pageContext.getAttribute("SiteName")); // 輸出null

pageContext.setAttribute("SiteName", "果凍想-一個原創技術文章分享網站");

%>

當我在瀏覽器訪問該頁面時會輸出null;當我再重新打開一個該頁面時,還會輸出null,并不會輸出”果凍想-一個原創技術文章分享網站”。也就是說,page作用域范圍的不會存在線程安全的問題,每一次訪問同一個頁面,設置的page作用域的屬性都是不一樣的。

2、request作用域

request表示一次客戶端的請求,他在請求中有效。

request可以通過setAttribute()和getAttribute方法存取值實現頁面中的信息傳遞,也可以通過forward()方法進行頁面間的跳轉(需要注意的是request是轉發不是重定向,轉發相對于瀏覽器來說是透明的,也就是無論頁面如何跳轉,地址欄上顯示的依舊是最初的地址,瀏覽器感知不到),在這些轉發頁面中都可以使用request中存儲的信息。

一次請求的生命周期從客戶端發起到服務器接收并響應該請求,或者將該請求forward到另一個頁面或者Servlet進行處理而結束。在此期間,本次請求的參數,屬性都是有效的;一旦客戶端刷新瀏覽器,重新發起請求,則之前的請求參數和屬性都將失效。

特別需要注意的是,當我們使用<jsp:forward .../>動作將當前請求轉向另一個頁面或者Servlet的時候,該請求的參數和屬性也一并轉過去,并不會因為<jsp:forward .../>動作而丟失request的參數和屬性。

3、session作用域

session作用域在當前回話中有效。當我們向服務器發送第一個請求開始,只要頁面不關閉,或者會話未過期(默認30分鐘),或者未調用HttpSession的invalidate()方法,接下來的操作都屬于同一次會話的范疇。當一個臺電腦上的同一瀏覽器對服務器進行多次訪問時,在這多次訪問之間傳遞的信息就是session作用域的范圍。它從瀏覽器發出第一個HTTP請求即可認為會話開始,在瀏覽器關閉時結束會話,但是會話結束的時間是不確定的,因為在瀏覽器關閉時并不會通知服務器,一般Tomcat設置的默認時間為120分鐘,也可以通過setMaxInactiveInterval(int)方法進行設置,或是通過invalidate()方法強制結束當前會話。session也可以通過setAttribute賦值和getAttribute取值。

在JSP中,每當向服務器發送一個請求,服務器響應這個請求的時候,會在客戶端的Cookie中寫一個session id值。每次發送請求的時候,會將該session id值一起發送到服務器端,服務器端根據該session id值來判斷每次請求是否屬于同一個session的范疇之內。

4、application作用域

application的作用域是最廣的,它在所有的應用程序中都有效。它代表著整個Web應用的全局變量,對每一個頁面,每一個Servlet都是有效的。當我們在application中設置屬性時,這個屬性在任意的一個頁面都是可以訪問的。

也就是當服務器開始到服務器結束這段時間,application作用域中存儲的數據都是有效的,同樣可以通過setAttribute賦值和getAttribute取值。要注意application里的變量可以被所有用戶共用,當一個用戶對application中的變量做了修改,其他用戶再訪問的是修改后的值。

在application作用域中設置的屬性如果不手動調用removeAttribute函數進行刪除的話,那么application中的屬性將永遠不會刪除,如果Web容器發生重啟,此時application范圍內的所有屬性都將丟失。

到此,關于“JSP四大作用域及其請求范圍”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

jsp
AI

闻喜县| 延长县| 景德镇市| 游戏| 通榆县| 宾阳县| 福安市| 湖州市| 漾濞| 精河县| 荆门市| 临海市| 巴里| 株洲县| 山西省| 石棉县| 报价| 舒城县| 绥阳县| 连南| 绥滨县| 长沙县| 江达县| 敦煌市| 南汇区| 卫辉市| 驻马店市| 乐山市| 商南县| 游戏| 广灵县| 澳门| 健康| 阿图什市| 乃东县| 富平县| 宜州市| 营口市| 阿合奇县| 宜川县| 瑞金市|