国产高清在线精品一区a_免费一级淫片aa_一级特黄录像播放_日本中文免费嗨片直播网

廣州為學(xué)教育科技有限公司

主營:JAVA開發(fā),軟件工程師,教育培訓(xùn)

免費店鋪在線升級

聯(lián)系方式
  • 公司: 廣州為學(xué)教育科技有限公司
  • 地址: 廣州天河區(qū)車陂灃宏大廈3樓
  • 聯(lián)系: 謝老師
  • 手機: 13632401219
  • 一鍵開店

比較四個域的作用域范圍大小

2018-11-17 03:52:30  386 次瀏覽

四個域的作用域范圍大小:PageContext (page域) < request < session < servletContext(application域)

一、ServletContext

1、生命周期:當(dāng)Web應(yīng)用被加載進容器時創(chuàng)建代表整個web應(yīng)用的ServletContext對象,當(dāng)服務(wù)器關(guān)閉或Web應(yīng)用被移除時,ServletContext對象跟著銷毀。

2、作用范圍:整個Web應(yīng)用。

3、作用:

a) 在不同Servlet 之間轉(zhuǎn)發(fā)

this.getServletContext().getRequestDispatcher("/servlet/Demo10Servlet").forward(request,response);

方法執(zhí)行結(jié)束,service就會返回到服務(wù)器,再有服務(wù)器去調(diào)用目標(biāo)servlet,其中request會重新創(chuàng)建,并將之前的request的數(shù)據(jù)拷貝進去。

b) 讀取資源文件。

1、由于相對路徑默認(rèn)相對的是java虛擬機啟動的目錄,所以我們直接寫相對路徑將會是相對于tomcat/bin目錄,所以是拿不到資源的。

如果寫成路徑,當(dāng)項目發(fā)布到其他環(huán)境時,路徑就錯了。

2、為了解決這個問題ServletContext提供了:

this.getServletContext().getRealPath(“/1.properties”),給進一個資源的虛擬路徑,將會返回該資源在當(dāng)前環(huán)境下的真實路徑。

this.getServletContext().getResourceAsStream(“/1.properties”),給一個資源的虛擬路徑返回到該資源真實路徑的流。

3、當(dāng)在非servlet下獲取資源文件時,就沒有ServletContext對象用了,此時只能用類加載器

classLoader.getResourceAsStream(“../../1.properties”),此方法利用類加載器直接將資源加載到內(nèi)存中,有更新延遲的問題,

以及如果文件太大,占用內(nèi)存過大。

classLoader.getResource(“../1.properties”).getPath(),直接返回資源的真實路徑,沒有更新延遲的問題。

二、Request 域

1、生命周期:在service 方法調(diào)用前由服務(wù)器創(chuàng)建,傳入service方法。整個請求結(jié)束,request生命結(jié)束。

2、作用范圍:整個請求鏈(請求轉(zhuǎn)發(fā)也存在)。

3、作用: 在整個請求鏈中共享數(shù)據(jù)。常用到:在Servlet 中處理好的數(shù)據(jù)交給Jsp顯示,此時參數(shù)就可以放置在Request域中帶過去。

三、Session 域

HttpSession 在服務(wù)器中,為瀏覽器創(chuàng)建的內(nèi)存空間,在其中保存會話相關(guān)的信息。

1、生命周期:在次調(diào)用 request.getSession() 方法時,服務(wù)器會檢查是否已經(jīng)有對應(yīng)的session,如果沒有就在內(nèi)存 中創(chuàng)建一個session并返回。

當(dāng)一段時間內(nèi)session沒有被使用(默認(rèn)為30分鐘),則服務(wù)器會銷毀該session。

如果服務(wù)器非正常關(guān)閉(強行關(guān)閉),沒有到期的session也會跟著銷毀。

如果調(diào)用session提供的invalidate(),可以立即銷毀session。

注意:服務(wù)器正常關(guān)閉,再啟動,Session對象會進行鈍化和活化操作。同時如果服務(wù)器鈍化的時間在session 默認(rèn)銷毀時間之內(nèi),則活化后session還是存在的。否則Session不存在。如果JavaBean 數(shù)據(jù)在session鈍化時,沒有實現(xiàn)Serializable 則當(dāng)Session活化時,會消失。

2、作用范圍:一次會話。

四、PageContext 域

1、生命周期:當(dāng)對JSP的請求時開始,當(dāng)響應(yīng)結(jié)束時銷毀。

2、作用范圍:整個JSP頁面,是四大作用域中小的一個,即超過這個頁面就不能夠使用了。(所以使用pageContext對象向其它頁面?zhèn)鬟f參數(shù)是不可能的.)

作用:

(1)獲取其它八大隱式對象,可以認(rèn)為是一個入口對象。

(2)獲取其所有域中的數(shù)據(jù)

pageContext 操作所有域中屬性的方法

public java.lang.Object getAttribute(java.lang.String name,intscope)

public void setAttribute(java.lang.String name, java.lang.Objectvalue,int scope)

public void removeAttribute(java.lang.String name,int scope)

pageContext 中代表域的常量

PageContext.APPLICATION_SCOPE

PageContext.SESSION_SCOPE

PageContext.REQUEST_SCOPE

PageContext.PAGE_SCOPE

findAttribute方法,在四大域中搜尋屬性,搜尋的順序是page域、request域、session域、application域,

從小域到大域開始搜索,如果搜索到就直接獲取該值,如果所有域中都找不到,返回一個null(與el表達式不同,此處返回null,對網(wǎng)頁是不友好的)

(3)跳轉(zhuǎn)到其他資源,其身上提供了forward和include方法,簡化重定向和轉(zhuǎn)發(fā)的操作。

網(wǎng)友評論
0條評論 0人參與
最新評論
  • 暫無評論,沙發(fā)等著你!
百業(yè)店鋪 更多 >

特別提醒:本頁面所展現(xiàn)的公司、產(chǎn)品及其它相關(guān)信息,均由用戶自行發(fā)布。
購買相關(guān)產(chǎn)品時務(wù)必先行確認(rèn)商家資質(zhì)、產(chǎn)品質(zhì)量以及比較產(chǎn)品價格,慎重作出個人的獨立判斷,謹(jǐn)防欺詐行為。

回到頂部