国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Java四大域?qū)ο笤斀猓⊿ervletContext、Session、Request、pageContext域?qū)ο螅?/h1>
2019-11-14 12:07:58
字體:
供稿:網(wǎng)友

一、ServletContext

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

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

3、作用:

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

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

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

b)讀取資源文件。

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

如果寫成絕對(duì)路徑,當(dāng)項(xiàng)目發(fā)布到其他環(huán)境時(shí),絕對(duì)路徑就錯(cuò)了。

2、為了解決這個(gè)問題ServletContext提供了:

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

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

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

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

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

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

二、Request 域

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

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

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

三、session

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

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

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

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

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

注意:服務(wù)器正常關(guān)閉,再啟動(dòng),Session對(duì)象會(huì)進(jìn)行鈍化和活化操作。同時(shí)如果服務(wù)器鈍化的時(shí)間在session 默認(rèn)銷毀時(shí)間之內(nèi),

則活化后session還是存在的。否則Session不存在。 如果JavaBean 數(shù)據(jù)在session鈍化時(shí),沒有實(shí)現(xiàn)Serializable 則當(dāng)Session活化時(shí),會(huì)消失。

2、作用范圍:一次會(huì)話。

四、PageContext 域

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

2、作用范圍:整個(gè)JSP頁面,是四大作用域中最小的一個(gè)。

作用:

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

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

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

public java.lang.Object getAttribute(java.lang.String name,int scope)

public void setAttribute(java.lang.String name, java.lang.Object value,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域,

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

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

引用原文:http://www.open-open.com/lib/view/open1438929192270.html


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

主站蜘蛛池模板: 巧家县| 琼中| 昌都县| 大田县| 白沙| 阳东县| 循化| 土默特左旗| 台山市| 桓仁| 洪雅县| 浑源县| 石景山区| 贡嘎县| 青神县| 淳安县| 盘锦市| 视频| 彭泽县| 抚远县| 易门县| 张家港市| 金寨县| 城固县| 南通市| 中江县| 林甸县| 绍兴市| 京山县| 东明县| 南乐县| 兖州市| 那坡县| 临沧市| 泸溪县| 大埔县| 武清区| 甘德县| 双峰县| 沾化县| 宁明县|