0104會話管理-p傳智播客教育_第1頁
0104會話管理-p傳智播客教育_第2頁
0104會話管理-p傳智播客教育_第3頁
0104會話管理-p傳智播客教育_第4頁
0104會話管理-p傳智播客教育_第5頁
免費預覽已結束,剩余16頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

會話問題:

會話?會話可簡單理解為:用戶開一個瀏覽器,點擊多個超

, 服務器多個web資源,然后關閉瀏覽器,整個過程稱之為一個會話。會話過程中要解決的一些問題?

每個用戶在使用瀏覽器與服務器進行會話的過程中,不可避免各自會產生一些數據,程序要想辦法為每個用戶保存這些數據。

例如:用戶點擊超想辦法保存用戶

servlet可以得到用戶通過一個servlet

了一個商品,程序應該的商品,以便于用戶點結帳servlet時,結帳的商品為用戶結帳。

思考:用戶 的商品保存在request或servletContext中行不行?播客教育保存會話數據的兩種技術是客戶端技術,程序把每個用戶的數據以 的形式寫給用戶各自的瀏覽器。當用戶使用瀏覽器再去服務器中的web資源時,就會帶著各自的數據去。這樣,web資源處理的就是用戶各自的數據了。HttpSession

Session是服務器端技術,利用這個技術,服務器在運行時可以為每一個用戶的瀏覽器創建一個其獨享的HttpSession對象,由于session為用戶瀏覽器獨享,所以用戶在 服務器的web資源時,可以把各自的數據放在各自的session中,當用戶再去 服務器中的其它web資源時,其它web資源再從用戶各自的session中取出數據為用戶服務。播客教育技術--放映瀏覽器服務器servlet1servlet2Set-2:name=洗衣機Set-2:name=洗衣機name=洗衣機IE緩存區:name=洗衣機:name=洗衣機.播客教育Session--放映瀏覽器B瀏覽器A瀏覽器CServlet1(

)session

=

request.getSession()Session.setAttribute(name,objcet)Servlet2(結帳)Session

=request.getsession()obj

=

Session.getAttribute(name);Session(a)name=洗衣機Session(b)name=電視Session(c)name=冰箱播客教育APIjavax.servlet.http.

類用于創建一個,response接口中定義了一個add其響應頭中增加一個相應的Set-request接口中也定義了一個get獲取客戶端提交的

。方法,它用于在頭字段。 同樣,s方法,它用于類的方法:public (String

name,String

value)setValue與getValue方法setMaxAge與getMaxAge方法(秒)setPath與getPath方法set

與get

方法getName方法播客教育應用播客教育細節一個

只能標識一種信息,它至少含有一個標識該信息的名稱(NAME)和設置值(VALUE)。一個WEB站點可以給一個WEB瀏覽器發送多個

,一個WEB瀏覽器也可以

多個WEB站點提供的

。瀏覽器一般只允許存放300個

,每個站點最多存放20個的大小限制為4KB。,并將他發送到瀏覽器,默認情況下它是,每個如果創建了一個一個會話級別的(即

在瀏覽器的內存中),用戶退出瀏覽器之后即被刪除。若希望瀏覽器將該在磁盤上,則需要使用maxAge,并給出一個以秒為單位的時間。將最大時效設為0則是命令瀏覽器刪除該

。注意,刪除

時,path必須一致,否則不會刪除播客教育應用播客教育應用顯示用戶上次瀏覽過的商品播客教育顯示上次瀏覽商品的實現過程顯示

商品的servlet:<a

href=/servlet?id=1>Javaweb開發</a><a

href=/servlet?id=2>Jdbc開發</a><a

href=/servlet?id=3>Spring開發</a>您曾經瀏覽過的商品Javaweb開發Jdbc開發瀏覽器Servlet(根據ID顯示商品詳細信息)發送bookHistory=1Id=1bookHistory=1Id=2bookHistory=1-2bookHistory=1-2.播客教育播客教育HttpSession許剛session在WEB開發中,服務器可以為每個用戶瀏覽器創建一個會話對象(session對象),注意:一個瀏覽器獨占一個session對象(默認情況下)。因此,在需要保存用戶數據時,服務器程序可以把用戶數據寫到用戶瀏覽器獨占的session中,當用戶使用瀏覽器其它程序時,其它程序可以從用戶的session中取出該用戶的數據,為用戶服務。Session和的主要區別在于:是把用戶的數據寫給用戶的瀏覽器。Session技術把用戶的數據寫到用戶獨占的session中。Session對象由服務器創建,開發

可以調用request對象的getSession方法得到session對象。播客教育session瀏覽器B瀏覽器A瀏覽器Cservlet1Session

=request.getsession()Session.setAttribute(name,objcet)Servlet2Session

=request.getsession()obj

=

Session.getAttribute(name);Session(a)name=洗衣機Session(b)name=電視Session(c)name=冰箱Session小實驗:使用IE某一個servlet,其它IE可以取到這個servlet存的數據嗎?注意,雖然代碼相同,但不同瀏覽器得到的各自的數據播客教育session實現原理疑問:服務器是如何實現一個session為一個用戶瀏覽器服務的?瀏覽器B瀏覽器Aservlet1session

=request.getSession()Servlet2session

=request.getsession()SessionId=111SessionId=222:Jsessionid=111:Jsessionid=111:Jsessionid=222:Jsessionid=222問題:如何實現多個IE瀏覽器共享同一session?(應用:關掉IE后,再開IE,上次的商品還在。).實驗播客教育session案例使用Session完成簡單的購物功能播客教育session案例使用Session完成用戶登陸;利用Session實現利用Session防止表單重復提交播客教育session案例-防止表單重復提交不足:但用戶單擊”刷新”,或單擊”后退”再次提交表單,將導致表單重復提交播客教育session案例-防止表單重復提交表單頁面由servlet程序生成,servlet為每次產生的表單頁面分配一個唯一的隨機標識號,并在FORM表單的一個隱藏字段中設置這個標識號,同時在當前用戶的Session域中保存這個標識號。當用戶提交FORM表單時,負責處理表單提交的serlvet得到表單提交的標識號,并與session中

的標識號比較,如果相同則處理表單提交,處理完后清除當前用戶的Session域中

的標識號。在下列情況下,服務器程序將

用戶提交的表單請求:Session域中的表單標識號與表單提交的標識號不同當前用戶的Session中不存在表單標識號用戶提交的表單數據中沒有標識號字段編寫工具類生成表單標識號:TokenProcessor播客教育session案例的主要目的就是為了限制人們利用工具來 猜測

。服務器程序接收到表單數據后,首先判斷用戶是否填寫了正確的 ,只有該 與服務器端保存的匹配時,服務器程序才開始正常的表單處理流程。猜測工具要逐一嘗試每個的前題條件是先輸有效的,這樣基入正確的

,而

是本上就阻斷了猜測工具的自動地處理過程。播客教育IE禁用后的session處理實驗演示禁用

后servlet共享數據導致的問題。解決方案:URL重寫

response.

encodeRedirectURL(java.lang.String

url)

用于對sendRedirect方法后的url地址

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論