成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Servlet容器的會(huì)話跟蹤

開發(fā) 后端
本文介紹Servlet容器的會(huì)話跟蹤,另外需要注意的就是一些很重要的會(huì)話的語(yǔ)義問題。

HTTP協(xié)議是一種無狀態(tài)的協(xié)議,而對(duì)于現(xiàn)在的web應(yīng)用而言,我們往往需要記錄從特定客戶端的一系列請(qǐng)求間的聯(lián)系?,F(xiàn)在已經(jīng)有很多會(huì)話跟蹤的技術(shù),但是對(duì)于程序員而言都不是很方便直接使用。Servlet規(guī)范定義了一個(gè)簡(jiǎn)單的HttpSession接口以方便Servlet容器進(jìn)行會(huì)話跟蹤而不需要開發(fā)者注意實(shí)現(xiàn)的細(xì)節(jié)。一般而言,有兩種最常用的會(huì)話跟蹤機(jī)制,一種就是URL重寫。在客戶端不接受cookie的情況下可以使用URL重寫進(jìn)行會(huì)話跟蹤。

URL重寫包括向URL路徑添加一些容器可以解釋的數(shù)據(jù)。規(guī)范要求會(huì)話ID必須編碼在URL路徑中,參數(shù)名稱必須是jsessionid,例如: http://www.myserver.com/catalog/index.html;jsessionid=1234,另一種就是現(xiàn)在最常用的cookie了,規(guī)范要求所有的Servlet都必須支持cookie。容器向客戶端發(fā)送一個(gè)cookie,客戶端在后續(xù)的處于同一個(gè)會(huì)話的請(qǐng)求中向服務(wù)器返回該cookie。會(huì)話跟蹤cookie的名字必須是JSESSIONID。

新出現(xiàn)的一種會(huì)話功能是SSL會(huì)話,SSL(Secure Sockets Layer,安全套接字層)是HTTPS協(xié)議使用的一種加密技術(shù),內(nèi)建了會(huì)話跟蹤功能,Servlet容器可以非常容易的使用這些數(shù)據(jù)建立會(huì)話跟蹤。(但是HTTPS不是規(guī)范要求Servlet必須支持的協(xié)議) 因?yàn)镠TTP是一種基于請(qǐng)求響應(yīng)的協(xié)議,因此會(huì)話只有在客戶端加入它以后才被新建立。當(dāng)會(huì)話跟蹤信息被成功的返回給服務(wù)器以指示會(huì)話給建立時(shí)客戶端才算加入了一個(gè)會(huì)話。如果客戶端沒有加入會(huì)話,那么下一次請(qǐng)求不會(huì)被認(rèn)為是會(huì)話的一部分。如何客戶端還不知道會(huì)話或者客戶端選擇不加入一個(gè)會(huì)話,那么會(huì)話被認(rèn)為是新的。開發(fā)者必須自己設(shè)計(jì)自己的應(yīng)用中的會(huì)話處理狀態(tài),在什么地方?jīng)]有加入會(huì)話,什么地方不能加入會(huì)話以及什么地方不需要加入會(huì)話。

規(guī)范要求HttpSession在應(yīng)用或者Servlet上下文級(jí)別有效,諸如cookie這樣的建立會(huì)話的底層機(jī)制可以在上下文中共享,但是對(duì)于那些外露的對(duì)象,以及更重要的是對(duì)象的那些屬性是不能在上下文中共享的。對(duì)于會(huì)話的屬性的綁定而言,任何對(duì)象都可以綁定到某個(gè)命名屬性。被綁定的屬性對(duì)象對(duì)于其它處于相同ServletContext并且處于同一個(gè)會(huì)話處理中的其它Servlet也是可見的。

某些對(duì)象在被加入會(huì)話或者被從會(huì)話中移除時(shí)要求得到通知,這樣的信息可以通過讓該對(duì)象實(shí)現(xiàn)HttpSessionBindingListener接口得到。該接口定義了兩個(gè)方法用以標(biāo)記被綁定到會(huì)話或者從會(huì)話中被移除。 valueBound方法在對(duì)象通過getAttribute之前就被調(diào)用,而valueUnbound方法在對(duì)象已經(jīng)不能通過getAttribute得到后才被調(diào)用。

由于HTTP是無狀態(tài)協(xié)議,因此客戶端不再活動(dòng)時(shí)沒有什么明顯的信號(hào),這也就意味著只有一種機(jī)制可以用于表明客戶端不再活動(dòng):超時(shí)。會(huì)話的缺省的時(shí)限由Servlet容器定義并且可以通過HttpSession的getMaxInactiveInterval得到,開發(fā)者也可以通過使用setMaxInactiveInterval
方法進(jìn)行設(shè)置,這些方法返回的單位是秒,如果時(shí)限被設(shè)置為-1,那么意味著永遠(yuǎn)不會(huì)超時(shí)。通過調(diào)用HttpSession的getLastAccessedTime方法,我們可以得到在當(dāng)前請(qǐng)求之前的訪問時(shí)間。當(dāng)會(huì)話中的一個(gè)請(qǐng)求被Servlet上下文處理時(shí)會(huì)話就被認(rèn)為被訪問了。

另外需要注意的就是一些很重要的會(huì)話的語(yǔ)義問題。
◆多線程問題:多個(gè)請(qǐng)求線程可能會(huì)同時(shí)訪問同一個(gè)會(huì)話,開發(fā)者有責(zé)任以適當(dāng)?shù)姆绞酵皆L問會(huì)話中的資源。
◆分布式環(huán)境:對(duì)于被標(biāo)記為可分布的應(yīng)用而言,同一會(huì)話中的所有請(qǐng)求只能被單一的VM處理。同時(shí),放入HttpSession中的所有對(duì)象都必須實(shí)現(xiàn) Serializable接口,否則容器可能會(huì)拋出IllegalArgumentException(在jboss_tomcat下沒有拋出這個(gè)異常,但是如果在關(guān)閉服務(wù)器時(shí)還有未完成的會(huì)話,那么服務(wù)器在試圖存儲(chǔ)會(huì)話時(shí)會(huì)出現(xiàn)串行化異常,在重新啟動(dòng)的時(shí)候會(huì)試圖回復(fù)會(huì)話,也會(huì)出現(xiàn)異常)。
這個(gè)限制意味著開發(fā)者不會(huì)遇到非可分布容器中的那些并發(fā)問題。另外容器提供者可以通過將一個(gè)會(huì)話對(duì)象以及它的內(nèi)容從分布式系統(tǒng)的一個(gè)活動(dòng)節(jié)點(diǎn)移動(dòng)到系統(tǒng)的其它不同節(jié)點(diǎn)的能力來保證可伸縮性。
◆客戶端的語(yǔ)義:基于cookie或者SSL證書通常是被web瀏覽器控制并且不聯(lián)系到特定瀏覽器窗口的事實(shí),從客戶端應(yīng)用的所有窗口發(fā)送到容器的請(qǐng)求都可能是同一個(gè)會(huì)話。為了達(dá)到最大的可移植性,開發(fā)者不能總假設(shè)特定客戶端的所有窗口的請(qǐng)求都處于同一個(gè)會(huì)話中。

【編輯推薦】

  1. 介紹Servlet 2.4版功能
  2. 多種Servlet接口介紹
  3. 接口介紹-Servlet Context
  4. Servlet的注冊(cè)方法
  5. 介紹Servlet容器
責(zé)任編輯:佚名 來源: 中國(guó)IT實(shí)驗(yàn)室
相關(guān)推薦

2009-07-08 15:10:00

Servlet會(huì)話管理

2009-07-09 11:27:59

Servlet容器

2009-07-07 16:23:05

Servlet容器

2009-07-08 14:01:47

Servlet容器

2009-07-08 14:22:36

Servlet容器匹配過程

2009-07-08 11:17:10

Servlet容器Servlet Con

2009-07-06 16:16:33

Servlet容器工作

2009-05-18 10:43:17

TomcatServletJetty

2022-03-31 15:17:04

JavaSocketServlet容器

2013-05-28 13:44:32

Android開發(fā)Android應(yīng)用ijetty

2012-03-21 12:57:29

JavaJettyServlet

2009-07-03 16:53:11

Servlet容器

2019-12-09 15:00:48

TomcatServlet容器

2009-07-07 08:46:18

JettyServlet容器

2020-07-21 14:35:44

Servlet容器ApacheTomcat

2010-05-27 15:05:23

ServletJava

2009-07-08 09:35:53

Java ServleServlet 3.0

2010-09-07 15:34:14

2010-07-26 13:36:48

Telnet會(huì)話

2009-06-30 13:00:30

JSP入門
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美bondage紧缚视频 | 日韩一区中文字幕 | 日本成人福利 | 亚洲男人的天堂网站 | 在线视频一区二区 | 午夜精品一区二区三区三上悠亚 | 在线观看特色大片免费网站 | 亚洲成人精品在线 | 欧美午夜精品 | 中文字幕在线观看国产 | 色婷婷综合久久久中字幕精品久久 | 久久久久九九九女人毛片 | 桃花av在线 | 黄色一级大片视频 | 中文字幕一区二区三区四区五区 | 亚洲视频免费观看 | 久久精品com| 久久乐国产精品 | 欧美aⅴ片 | www.一级片 | 99精品在线观看 | 精品欧美一区二区三区免费观看 | 夜夜骑首页 | 亚洲欧美日韩在线不卡 | 国产免费一区 | 精品久久99| 成人在线视频一区二区三区 | 三级黄色网址 | 奇米在线 | 午夜精品 | 国产精品视频播放 | 一区二区三区四区免费在线观看 | 先锋影音资源网站 | 亚洲欧美男人天堂 | 免费在线观看一区二区三区 | 欧美日韩在线电影 | 亚洲一区二区三区免费 | 99精品欧美一区二区蜜桃免费 | 国产精品久久久久久中文字 | 成人高清在线视频 | 成人在线免费视频 |