Oracle知識—HTTP Servlet中持久化狀態(tài)
來源:易賢網(wǎng) 閱讀:929 次 日期:2014-09-17 10:17:56
溫馨提示:易賢網(wǎng)小編為您整理了“Oracle知識—HTTP Servlet中持久化狀態(tài)”,方便廣大網(wǎng)友查閱!

HTTP協(xié)議的無狀態(tài)

1. 在HTTP協(xié)議中無狀態(tài)的優(yōu)缺點(diǎn)

a) HTTP交互是無狀態(tài)的

無狀態(tài)是指,當(dāng)瀏覽器發(fā)送請求給服務(wù)器的時候,服務(wù)器響應(yīng),但是同一個瀏覽器再發(fā)送請求給服務(wù)器的時候,他會響應(yīng),但是他不知道你就是剛才那個瀏覽器。

b) 優(yōu)點(diǎn)

i. 客戶瀏覽器不會注意到服務(wù)器出現(xiàn)故障并重啟.

ii. 在服務(wù)器不需要先前信息時它的應(yīng)答就較快

c) 缺點(diǎn)

i. 對于事務(wù)處理沒有記憶能力,可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大

ii. 很難產(chǎn)生收集信息去產(chǎn)生良好用戶體驗(yàn)的一組頁面.

2. HTTP如果有狀態(tài)的好處

a) 減少數(shù)據(jù)的傳送量

b) 認(rèn)證網(wǎng)頁可以收集用戶的認(rèn)證信息

c) 可以定義用戶的對網(wǎng)頁的訪問權(quán)限

Cookie的原理和應(yīng)用

1. Cookie

a) 定義:

是一種由服務(wù)器發(fā)送給客戶的片段信息,存儲在客戶端瀏覽器的內(nèi)在中或硬盤上,在客戶隨后對該服務(wù)器的請求中發(fā)回它。

b) Cookie規(guī)范:

i. Netscape規(guī)范(版本0):

ii. RFC2109(HTTP狀態(tài)管理機(jī)制,版本1):http://www.ietf.org/rfc

c) 響應(yīng)報頭:

Set-Cookie: NAME=VALUE; Comment=value; Domain=value; Max-Age=value; Path=value; Secure; Version=1*DIGIT

d) 其他

Cookie中文譯為小甜餅,是由Netscape公司發(fā)明的。Netscape公司也是最早開發(fā)瀏覽器的公司,在互聯(lián)網(wǎng)剛剛發(fā)展的前期,它憑借著先入為主的優(yōu)勢Netscape也曾經(jīng)成為最流行的瀏覽器。但由于windows95的普及,微軟公司將IE瀏覽器與windows進(jìn)行綁定銷售,Netscape逐漸銷聲匿跡,不為人知了。但現(xiàn)在大多數(shù)的互聯(lián)網(wǎng)協(xié)議與規(guī)范都源于Netscape公司的產(chǎn)品。Cookie就是其中之后。它是一種由服務(wù)器發(fā)送給客戶的片段信息,它可以存儲在客戶端瀏覽器的內(nèi)在中或硬盤上,然后在客戶隨后對該服務(wù)器的請求中發(fā)回它。Cookie目前遵循的規(guī)范主要是兩種,一個就是Netscape規(guī)范,它的規(guī)范文件可以在找到。另一個是RFC2109,它的規(guī)范文件可以在上找到。這兩個規(guī)范,規(guī)定了在HTTP協(xié)議中,關(guān)于cookie的報頭的形式。比如,在RFC2109規(guī)范中,規(guī)定了響應(yīng)報頭的形式是這樣子的。Name是cookie的名字,vlue是它的值。Name=value屬性-值對必須首先出現(xiàn),在此之后的屬性值對可以以任何順序出現(xiàn)。Comment屬性是可選的,因?yàn)閏ookies可能包含關(guān)于用戶私有的信息,這個屬性允許服務(wù)器說明這個cookie的使用,用戶可以檢查這個信息,然后決定是否加入或繼續(xù)會話。 Domain屬性是可選的,用于指定Cookie在哪一個域有效,所指定的域必須以點(diǎn)號開始。Max-age屬性是可選可的,用于定義Cookie的生存時間,以秒為單位,如果超過了這個時間,客戶端應(yīng)該丟棄這個cookie,如果指定的秒數(shù)為0,表示這個cookie應(yīng)該立即被丟棄。Path屬性是可選的,用于指定這個cookie在哪一個URL子集下有效。Secure屬性是可選的,它沒有值,用于指示瀏覽器使用安全的方式與服務(wù)器交互。Version屬性是必需的,它的值是一個十進(jìn)制的整數(shù),標(biāo)識cookie依照的狀態(tài)管理規(guī)范的版本,對于RFC2109 Version應(yīng)該設(shè)為1.

2. 使用Cookie編程

a) 特點(diǎn)

i. 以鍵-值對的方式記錄會話跟蹤的內(nèi)容

ii. Cookie的持久性較高

iii. 用戶可以手動限制cookie的使用

iv. Session可以用來替代Cookie

3. 設(shè)置一個Cookie

a) 創(chuàng)建cookie:

Cookie c = new Cookie("MyName", "MyValue");

b) Cookie的方法:

i. getConnment()、setComment(String purpose)

ii. getDomain()、setDomain(String pattern)

iii. getMaxAge()、setMaxAge(int expiry)

iv. getName()、getValue()

v. setValue(String newValue)

vi. getPath()、setpath(String uri)

c) 使用cookie

i. Response.addCookie()

ii. Request.getCoonkie()

4. 實(shí)例—登錄程序

a) 功能:

i. 使用cookie來保存用戶登錄信息

ii. 初次登錄,將信息保存到客戶端的硬盤上

iii. 再次訪問,先驗(yàn)證用戶登錄信息,通過后顯示歡迎信息

b) 步驟:

i. 第一步:編寫LoginServlet.java和GreetServlet.java

ii. 第二步:編譯JAVA源文件

iii. 第三步:部署servlet

5. 實(shí)例—LoginSerlvet

6. 實(shí)例—GreetServlet

7. 向?yàn)g覽器輸出會話

a) Cookie

i. 跟蹤跟瀏覽器有關(guān)的會話

ii. 有些瀏覽器不支持

iii. 有些用戶由于安全原因不使用

b) 重寫URL

i. 通過一個請求URL的會話ID把一個會話綁定到一個瀏覽器上

ii. 耗費(fèi)時間去掃描頁面和URL重定向

iii. 使用encodeURL()和encodeRedirectURL()

Session的原理和應(yīng)用

1. Session

a) 定義:

i. 一個瀏覽器到一個服務(wù)器相關(guān)的HTTP交互的集合.

ii. 是被瀏覽器訪問的Servlet獲取的與那些交互相關(guān)的數(shù)據(jù)集合.

b) javax.servlet.http.HttpSession支持的接口.

2. HttpSession接口

a) HttpSession接口中的方法

i. public Object getAttribute(String name)

ii. public void setAttribute(String name,Object value)

iii. public void removeAttribute(String name)

iv. public int setMaxInactiveInterval()

v. public void invalidate()

3. 補(bǔ)充說明

a) Servlet運(yùn)行就會創(chuàng)建會話.

b) Servlet可以通過下面的方法來獲得session對象:

getSession()

c) 任何servlet可以請求創(chuàng)建會話.

d) 對處理目標(biāo)瀏覽器中請求的所有Servlet都可以訪問會話中的信息.

e) 會話會由于瀏覽器的不活躍而超時而失效。

4. Cookie和Session比較

a) session

i. 由服務(wù)器端創(chuàng)建

ii. 由服務(wù)端保存信息

iii. 打開新的瀏覽器,就會開始一次新的會話

b) Cookie

i. 由服務(wù)器發(fā)送給客戶端的片段信息,存儲在客戶端瀏覽器的內(nèi)存中或硬盤上。

ii. 由客戶端保存信息

iii. 在cookie有效期間內(nèi),多個瀏覽器可訪問同一個cookie對象

回顧C(jī)ookie和Session

Cookie在一個瀏覽器中存儲一個變量和對應(yīng)的值.

Cookie可以由瀏覽器用戶配置.

不是所有的瀏覽器都支持Cookie.

可以使用addCookie()和getCookie ()方法獲取Cookie.

session是由瀏覽器和網(wǎng)絡(luò)服務(wù)器之間的交互所關(guān)聯(lián)的數(shù)據(jù)集合.

每打開一個瀏覽器,就會創(chuàng)建一個新的session對象

會話開發(fā)時存在下列方法:

getSession()

setAttribute(key, value)

getAttribute(key)

更多信息請查看IT技術(shù)專欄

更多信息請查看數(shù)據(jù)庫
易賢網(wǎng)手機(jī)網(wǎng)站地址:Oracle知識—HTTP Servlet中持久化狀態(tài)
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機(jī)號
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)