自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

針對Java 四大域對象的匯總

開發(fā) 后端
生命周期:當Web應用被加載進容器時創(chuàng)建代表整個web應用的ServletContext對象,當服務器關閉或Web應用被移除時,ServletContext對象跟著銷毀。

一、ServletContext

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

2、作用范圍:整個Web應用。

3、作用:

針對Java 四大域對象的匯總

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

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

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

b)讀取資源文件。

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

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

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

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

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

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

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

以及如果文件太大,占用內存過大。

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

二、Request 域

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

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

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

三、Session 域

HttpSession 在服務器中,為瀏覽器創(chuàng)建***的內存空間,在其中保存會話相關的信息。

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

當一段時間內session沒有被使用(默認為30分鐘),則服務器會銷毀該session。

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

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

注意:服務器正常關閉,再啟動,Session對象會進行鈍化和活化操作。同時如果服務器鈍化的時間在session 默認銷毀時間之內,

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

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

四、PageContext 域

1、生命周期:當對JSP的請求時開始,當響應結束時銷毀。

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

作用:

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

(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域,

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

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

責任編輯:王雪燕 來源: codeceo
相關推薦

2010-09-28 10:09:35

DOM對象模型

2011-03-21 09:01:49

CSS框架

2015-07-17 09:50:16

Carthage優(yōu)劣比較

2011-10-21 13:59:48

Java云計算

2013-01-06 10:44:43

微軟Windows 8云計算

2016-03-30 11:51:55

2021-09-17 10:50:14

容器 Linux

2010-09-15 13:35:25

SwingHibernateStruts

2019-01-23 16:13:02

大數(shù)據(jù)數(shù)據(jù)處理數(shù)據(jù)挖掘

2021-04-08 11:20:24

零信任網絡安全網絡攻擊

2021-02-20 23:24:33

同態(tài)加密HE隱私保護

2010-08-30 15:48:09

2010-10-21 14:21:15

SQL Server視

2013-10-29 09:09:58

SDN關鍵

2020-04-09 09:33:30

創(chuàng)新領導者團隊

2023-11-02 16:17:34

數(shù)字孿生

2023-02-23 10:55:11

IT支出趨勢首席信息官

2010-11-22 15:25:08

2018-02-25 11:34:35

2018-01-03 12:57:55

Bug管理員代碼
點贊
收藏

51CTO技術棧公眾號