




已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
北京傳智播客教育,會(huì)話管理,王昭珽,北京傳智播客教育,會(huì)話,問(wèn)題:什么是會(huì)話?會(huì)話可簡(jiǎn)單理解為:用戶(hù)開(kāi)一個(gè)瀏覽器,點(diǎn)擊多個(gè)超鏈接,訪問(wèn)服務(wù)器多個(gè)web資源,然后關(guān)閉瀏覽器,整個(gè)過(guò)程稱(chēng)之為一個(gè)會(huì)話。會(huì)話過(guò)程中要解決的一些問(wèn)題?每個(gè)用戶(hù)在使用瀏覽器與服務(wù)器進(jìn)行會(huì)話的過(guò)程中,不可避免各自會(huì)產(chǎn)生一些數(shù)據(jù),程序要想辦法為每個(gè)用戶(hù)保存這些數(shù)據(jù)。例如:用戶(hù)點(diǎn)擊超鏈接通過(guò)一個(gè)servlet購(gòu)買(mǎi)了一個(gè)商品,程序應(yīng)該想辦法保存用戶(hù)購(gòu)買(mǎi)的商品,以便于用戶(hù)點(diǎn)結(jié)帳servlet時(shí),結(jié)帳servlet可以得到用戶(hù)購(gòu)買(mǎi)的商品為用戶(hù)結(jié)帳。思考:用戶(hù)購(gòu)買(mǎi)的商品保存在request或servletContext中行不行?,北京傳智播客教育,保存會(huì)話數(shù)據(jù)的兩種技術(shù),CookieCookie是客戶(hù)端技術(shù),程序把每個(gè)用戶(hù)的數(shù)據(jù)以cookie的形式寫(xiě)給用戶(hù)各自的瀏覽器。當(dāng)用戶(hù)使用瀏覽器再去訪問(wèn)服務(wù)器中的web資源時(shí),就會(huì)帶著各自的數(shù)據(jù)去。這樣,web資源處理的就是用戶(hù)各自的數(shù)據(jù)了。SessionSession是服務(wù)器端技術(shù),利用這個(gè)技術(shù),服務(wù)器在運(yùn)行時(shí)可以為每一個(gè)用戶(hù)的瀏覽器創(chuàng)建一個(gè)其獨(dú)享的session對(duì)象,由于session為用戶(hù)瀏覽器獨(dú)享,所以用戶(hù)在訪問(wèn)服務(wù)器的web資源時(shí),可以把各自的數(shù)據(jù)放在各自的session中,當(dāng)用戶(hù)再去訪問(wèn)服務(wù)器中的其它web資源時(shí),其它web資源再?gòu)挠脩?hù)各自的session中取出數(shù)據(jù)為用戶(hù)服務(wù)。,北京傳智播客教育,Cookie技術(shù)-放映,瀏覽器,服務(wù)器,servlet1,servlet2,Set-Cookie2:name=洗衣機(jī),Set-Cookie2:name=洗衣機(jī),name=洗衣機(jī),IE緩存區(qū),cookie:name=洗衣機(jī),cookie:name=洗衣機(jī),.,北京傳智播客教育,Session-放映,瀏覽器,瀏覽器,瀏覽器,Servlet1(購(gòu)買(mǎi))session=request.getSession()Session.setAttribute(name,objcet),Servlet2(結(jié)帳)Session=request.getsession()obj=Session.getAttribute(name);,Session(a)name=洗衣機(jī),Session(b)name=電視,Session(c)name=冰箱,北京傳智播客教育,CookieAPI,javax.servlet.http.Cookie類(lèi)用于創(chuàng)建一個(gè)Cookie,response接口也中定義了一個(gè)addCookie方法,它用于在其響應(yīng)頭中增加一個(gè)相應(yīng)的Set-Cookie頭字段。同樣,request接口中也定義了一個(gè)getCookies方法,它用于獲取客戶(hù)端提交的Cookie。Cookie類(lèi)的方法:publicCookie(Stringname,Stringvalue)setValue與getValue方法setMaxAge與getMaxAge方法(秒)setPath與getPath方法setDomain與getDomain方法getName方法,北京傳智播客教育,Cookie應(yīng)用,顯示用戶(hù)上次訪問(wèn)時(shí)間,北京傳智播客教育,Cookie細(xì)節(jié),一個(gè)Cookie只能標(biāo)識(shí)一種信息,它至少含有一個(gè)標(biāo)識(shí)該信息的名稱(chēng)(NAME)和設(shè)置值(VALUE)。一個(gè)WEB站點(diǎn)可以給一個(gè)WEB瀏覽器發(fā)送多個(gè)Cookie,一個(gè)WEB瀏覽器也可以存儲(chǔ)多個(gè)WEB站點(diǎn)提供的Cookie。瀏覽器一般只允許存放300個(gè)Cookie,每個(gè)站點(diǎn)最多存放20個(gè)Cookie,每個(gè)Cookie的大小限制為4KB。如果創(chuàng)建了一個(gè)cookie,并將他發(fā)送到瀏覽器,默認(rèn)情況下它是一個(gè)會(huì)話級(jí)別的cookie(即存儲(chǔ)在瀏覽器的內(nèi)存中),用戶(hù)退出瀏覽器之后即被刪除。若希望瀏覽器將該cookie存儲(chǔ)在磁盤(pán)上,則需要使用maxAge,并給出一個(gè)以秒為單位的時(shí)間。將最大時(shí)效設(shè)為0則是命令瀏覽器刪除該cookie。注意,刪除cookie時(shí),path必須一致,否則不會(huì)刪除,北京傳智播客教育,Cookie應(yīng)用,北京傳智播客教育,Cookie應(yīng)用,顯示用戶(hù)上次瀏覽過(guò)的商品,北京傳智播客教育,顯示上次瀏覽商品的實(shí)現(xiàn)過(guò)程,顯示網(wǎng)站商品的servlet:Javaweb開(kāi)發(fā)Jdbc開(kāi)發(fā)Spring開(kāi)發(fā)您曾經(jīng)瀏覽過(guò)的商品Javaweb開(kāi)發(fā)Jdbc開(kāi)發(fā),瀏覽器,Servlet(根據(jù)ID顯示商品詳細(xì)信息)發(fā)送Cookie,Id=2,bookHistory=1,bookHistory=1,Id=1,bookHistory=1-2,bookHistory=1-2,.,北京傳智播客教育,Session,王昭珽,北京傳智播客教育,session,在WEB開(kāi)發(fā)中,服務(wù)器可以為每個(gè)用戶(hù)瀏覽器創(chuàng)建一個(gè)會(huì)話對(duì)象(session對(duì)象),注意:一個(gè)瀏覽器獨(dú)占一個(gè)session對(duì)象(默認(rèn)情況下)。因此,在需要保存用戶(hù)數(shù)據(jù)時(shí),服務(wù)器程序可以把用戶(hù)數(shù)據(jù)寫(xiě)到用戶(hù)瀏覽器獨(dú)占的session中,當(dāng)用戶(hù)使用瀏覽器訪問(wèn)其它程序時(shí),其它程序可以從用戶(hù)的session中取出該用戶(hù)的數(shù)據(jù),為用戶(hù)服務(wù)。Session和Cookie的主要區(qū)別在于:Cookie是把用戶(hù)的數(shù)據(jù)寫(xiě)給用戶(hù)的瀏覽器。Session技術(shù)把用戶(hù)的數(shù)據(jù)寫(xiě)到用戶(hù)獨(dú)占的session中。Session對(duì)象由服務(wù)器創(chuàng)建,開(kāi)發(fā)人員可以調(diào)用request對(duì)象的getSession方法得到session對(duì)象。,北京傳智播客教育,session,瀏覽器,瀏覽器,瀏覽器,servlet1Session=request.getsession()Session.setAttribute(name,objcet),Servlet2Session=request.getsession()obj=Session.getAttribute(name);,Session(a)name=洗衣機(jī),Session(b)name=電視,Session(c)name=冰箱,Session小實(shí)驗(yàn):使用IE訪問(wèn)某一個(gè)servlet,其它IE可以取到這個(gè)servlet存的數(shù)據(jù)嗎?,注意,雖然代碼相同,但不同瀏覽器得到的各自的數(shù)據(jù),北京傳智播客教育,session實(shí)現(xiàn)原理,疑問(wèn):服務(wù)器是如何實(shí)現(xiàn)一個(gè)session為一個(gè)用戶(hù)瀏覽器服務(wù)的?,瀏覽器,瀏覽器,servlet1session=request.getSession(),Servlet2session=request.getsession(),SessionId=111,SessionId=222,cookie:Jsessionid=111,cookie:Jsessionid=111,cookie:Jsessionid=222,cookie:Jsessionid=222,問(wèn)題:如何實(shí)現(xiàn)多個(gè)IE瀏覽器共享同一session?(應(yīng)用:關(guān)掉IE后,再開(kāi)IE,上次購(gòu)買(mǎi)的商品還在。),.實(shí)驗(yàn),北京傳智播客教育,session案例,使用Session完成簡(jiǎn)單的購(gòu)物功能,北京傳智播客教育,IE禁用Cookie后的session處理,實(shí)驗(yàn)演示禁用Cookie后servlet共享數(shù)據(jù)導(dǎo)致的問(wèn)題。解決方案:URL重寫(xiě)response.encodeRedirectURL(java.lang.Stringurl)用于對(duì)sendRedirect方法后的url地址進(jìn)行重寫(xiě)。response.encodeURL(java.lang.Stringurl)用于對(duì)表單action和超鏈接的url地址進(jìn)行重寫(xiě)附加:Session的失效Web.xml文件配置session失效時(shí)間,北京傳智播客教育,session案例,使用Session完成用戶(hù)登陸利用Session防止表單重復(fù)提交利用Session實(shí)現(xiàn)一次性驗(yàn)證碼,北京傳智播客教育,session案例防止表單重復(fù)提交,不足:但用戶(hù)單擊”刷新”,或單擊”后退”再次提交表單,將導(dǎo)致表單重復(fù)提交,北京傳智播客教育,session案例防止表單重復(fù)提交,表單頁(yè)面由servlet程序生成,servlet為每次產(chǎn)生的表單頁(yè)面分配一個(gè)唯一的隨機(jī)標(biāo)識(shí)號(hào),并在FORM表單的一個(gè)隱藏字段中設(shè)置這個(gè)標(biāo)識(shí)號(hào),同時(shí)在當(dāng)前用戶(hù)的Session域中保存這個(gè)標(biāo)識(shí)號(hào)。當(dāng)用戶(hù)提交FORM表單時(shí),負(fù)責(zé)處理表單提交的serlvet得到表單提交的標(biāo)識(shí)號(hào),并與session中存儲(chǔ)的標(biāo)識(shí)號(hào)比較,如果相同則處理表單提交,處理完后清除當(dāng)前用戶(hù)的Session域中存儲(chǔ)的標(biāo)識(shí)號(hào)。在下列情況下,服務(wù)器程序?qū)⒕芙^用戶(hù)提交的表單請(qǐng)求:存儲(chǔ)Session域中的表單標(biāo)識(shí)號(hào)與表單提交的標(biāo)識(shí)號(hào)不同當(dāng)前用戶(hù)的Session中不存在表單標(biāo)識(shí)號(hào)用戶(hù)提交的表單數(shù)據(jù)中沒(méi)有標(biāo)識(shí)號(hào)字段,編寫(xiě)工具類(lèi)生成表單標(biāo)識(shí)號(hào):TokenProcessor,北京傳智播客教育,session案例一次性校驗(yàn)碼,一次性驗(yàn)證碼的主要目的就是為了限制人們利用工具
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程審批制度改革培訓(xùn)
- 家長(zhǎng)普通話培訓(xùn)材料
- 2024-2025學(xué)年山西省大同市平城區(qū)多校聯(lián)考七年級(jí)上學(xué)期期中生物試卷
- 2024-2025學(xué)年山東省煙臺(tái)市經(jīng)濟(jì)技術(shù)開(kāi)發(fā)區(qū)(五四制)八年級(jí)上學(xué)期期中生物試卷
- 內(nèi)科護(hù)理年度總結(jié)報(bào)告
- 2025年食品安全法培訓(xùn)
- 多重耐藥菌感染的相關(guān)知識(shí)培訓(xùn)
- 2024-2025學(xué)年下學(xué)期初中語(yǔ)文統(tǒng)編版七年級(jí)期末必刷??碱}之字音字形
- 護(hù)理工作基本制度
- 河南農(nóng)業(yè)職業(yè)學(xué)院《景觀設(shè)計(jì)1(住宅區(qū))》2023-2024學(xué)年第一學(xué)期期末試卷
- GB/T 70.6-2020內(nèi)六角圓柱頭螺釘細(xì)牙螺紋
- GB/T 40516-2021J類(lèi)船用法蘭連接金屬閥門(mén)的結(jié)構(gòu)長(zhǎng)度
- GB/T 29822-2013鎢錸熱電偶絲及分度表
- GB/T 22562-2008電梯T型導(dǎo)軌
- 中國(guó)高等教育學(xué)會(huì)外國(guó)留學(xué)生教育管理分會(huì)中國(guó)高等教育學(xué)會(huì)外國(guó)留學(xué)生教育管理分會(huì)科研課題申請(qǐng)書(shū)
- 中國(guó)瓷器介紹英文版教學(xué)內(nèi)容
- 2022年武漢市洪山區(qū)法院書(shū)記員招聘筆試試題及答案解析
- “雙減”背景下初中化學(xué)作業(yè)設(shè)計(jì)優(yōu)秀案例
- 綜合英語(yǔ)(3)-國(guó)家開(kāi)放大學(xué)電大學(xué)習(xí)網(wǎng)形考作業(yè)題目答案
- 影視劇改編經(jīng)典案例解析課件(全)
- 甘肅省教育科學(xué)規(guī)劃20XX年度課題申請(qǐng)申報(bào)表
評(píng)論
0/150
提交評(píng)論