Servle中文亂碼和回話跟蹤_第1頁(yè)
Servle中文亂碼和回話跟蹤_第2頁(yè)
Servle中文亂碼和回話跟蹤_第3頁(yè)
Servle中文亂碼和回話跟蹤_第4頁(yè)
Servle中文亂碼和回話跟蹤_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第二卷

Web組件-1(Servlet)Servlet中文亂碼和會(huì)話跟蹤2回顧Servlet使用戶可以在服務(wù)器上運(yùn)行Java代碼和生成動(dòng)態(tài)內(nèi)容HTTPServlet發(fā)送HTTP請(qǐng)求和接受HTTP響應(yīng)Servlet生命周期由三種方法組成,即init()、service()和destroy()ServletAPI包含于兩個(gè)包中,分別為javax.servlet

javax.servlet.httpServlet繼承GenericServlet類或HttpServlet類。利用Eclipse平臺(tái)開發(fā)Servlet3目標(biāo)Servlet中文亂碼定義會(huì)話跟蹤創(chuàng)建會(huì)話標(biāo)識(shí)會(huì)話跟蹤技術(shù)中文亂碼

在Servlet中,經(jīng)常會(huì)有這樣一行代碼request.setCharacterEncoding(“GBK”);這行代碼的作用就是避免Servlet響應(yīng)頁(yè)面中出現(xiàn)中文亂碼的問題。為什么會(huì)產(chǎn)生亂碼?不同的組件有自己默認(rèn)的字符編碼集。當(dāng)編碼和解碼的字符集不一致,就容易產(chǎn)生亂碼問題。中文IE默認(rèn)的編碼格式是“GB2312”Tomcat默認(rèn)的編碼格式“iso-8859-1”weblogic默認(rèn)的編碼格式“UTF-8”JAVA源文件編譯為class文件時(shí)的字符集,默認(rèn)為操作系統(tǒng)的字符集,但在IDE中可以改變。中文亂碼解決辦法整個(gè)系統(tǒng)從開發(fā)到運(yùn)行使用統(tǒng)一的字符編碼集開發(fā)應(yīng)用程序的IDE工具設(shè)置。開發(fā)所使用的容器的配置文件的設(shè)置。請(qǐng)求處理方式的設(shè)置響應(yīng)處理方式的設(shè)置存取數(shù)據(jù)庫(kù)時(shí)的設(shè)置最好選擇以下其中一種進(jìn)行統(tǒng)一Iso-8859-1GBK(GB2312)UTF-8(支持所有語言)中文亂碼解決辦法IDE開發(fā)環(huán)境(MyEclipse)中,設(shè)置字符集中文亂碼解決辦法開發(fā)中所使用容器的配置文件的設(shè)置,例如修改weblogic容器中的weblogic.xml配置文件,在<jsp-descriptor>部分加入:<jsp-descriptor><jsp-param><param-name>compilerSupportsEncoding</param-name><param-value>true</param-value></jsp-param><jsp-param><param-name>encoding</param-name><param-value>GBK</param-value></jsp-param></jsp-descriptor>中文亂碼解決辦法響應(yīng)處理方式中的設(shè)置在Servlet中加入JSP中加入:中文亂碼解決辦法請(qǐng)求處理方式中的設(shè)置對(duì)于POST請(qǐng)求:request.setCharacterEncoding(“GBK”)對(duì)于GET請(qǐng)求:Stringinfo=request.getParameter("information");Stringnewinfo=newString(info.getBytes("utf-8"),"GBK");中文亂碼解決辦法存取數(shù)據(jù)庫(kù)時(shí)的設(shè)置11有必要保持同一客戶的會(huì)話(會(huì)話跟蹤)會(huì)話跟蹤保持客戶端狀態(tài)Internet協(xié)議兩種類型:①有狀態(tài):Telnet、FTP;②無狀態(tài):Http(服務(wù)器一旦響應(yīng)完客戶的請(qǐng)求之后,斷開其之間網(wǎng)絡(luò)連接,該客戶下次請(qǐng)求將重新建立網(wǎng)絡(luò)連接,服務(wù)器判斷是否為同一個(gè)客戶發(fā)出請(qǐng)求)12會(huì)話跟蹤請(qǐng)求1請(qǐng)求2請(qǐng)求n…….服務(wù)器將唯一的會(huì)話ID

分配給客戶端以跟蹤用戶13會(huì)話如何工作beer網(wǎng)上交易平臺(tái)客戶端AServletA請(qǐng)求‘Darkbeer’單價(jià)?請(qǐng)求1線程AHttpSessionASetAttribute()線程發(fā)現(xiàn)與客戶A的會(huì)話,把他的選擇Darkbeer作為一個(gè)屬性保存在HttpSessionA會(huì)話中響應(yīng)’15’響應(yīng)’15’請(qǐng)求‘Expensive’線程B請(qǐng)求2線程找到該會(huì)話,把‘Expensive’作為一個(gè)屬性保存會(huì)話中響應(yīng)’15off8’響應(yīng)’15off8’客戶端B線程C請(qǐng)求‘Polobeer‘單價(jià)?請(qǐng)求3HttpSessionBSetAttribute()線程為客戶B開始一個(gè)新會(huì)話,并保存’Polobeer‘響應(yīng)’12’響應(yīng)’12’發(fā)現(xiàn):容器會(huì)為每一個(gè)客戶端維護(hù)一個(gè)單獨(dú)的HttpSession對(duì)象ServletA14問題容器怎么知道客戶是誰?

因?yàn)镠ttp協(xié)議無狀態(tài),對(duì)同一客戶所發(fā)出的每次請(qǐng)求對(duì)容器而言都是一個(gè)新的客戶。答案客戶需要一個(gè)唯一的會(huì)話ID

即:對(duì)客戶的第一次請(qǐng)求,容器會(huì)生成一個(gè)唯一的會(huì)話ID,并通過響應(yīng)把它返回給客戶;客戶再在以后的每一個(gè)請(qǐng)求中發(fā)回這個(gè)會(huì)話ID,容器看到ID后,就會(huì)找匹配的會(huì)話,并把這個(gè)會(huì)話與請(qǐng)求關(guān)聯(lián)。

15會(huì)話跟蹤請(qǐng)求1’Darkbeer‘請(qǐng)求2‘Blackbeer’ID#42…….Hi,Server,這是我的第一個(gè)請(qǐng)求,參數(shù)是Darkbeer,我們可以開始一個(gè)會(huì)話嗎?好,但是我很健忘,可能記不得你,所以給你一個(gè)唯一的ID,每次你發(fā)送請(qǐng)求時(shí)一定把它交還給我,這樣我就知道那是你了ID#42newSessionID‘#42’SetAttribute(‘Darkbeer’)響應(yīng)ID#42讓我看看,#42…哦有你,對(duì)了我現(xiàn)在想起來你是誰了,上一次你說你喜歡’Darkbeer‘SetAttribute(‘Blackbeer’)響應(yīng)16創(chuàng)建囑會(huì)話創(chuàng)建涌會(huì)話緣瑞對(duì)象Ht息tp啦Se問ss傅io錢n若發(fā)片來的購(gòu)請(qǐng)求吉中無爭(zhēng)會(huì)話ID恰,容器絨創(chuàng)建餐新會(huì)頂話;若發(fā)榮來的鐘請(qǐng)求端中有鵲會(huì)話ID全,無需扒創(chuàng)建反新會(huì)碼話,斧找到舅相關(guān)緊的會(huì)盛話ID。Ht潤(rùn)tp北Se注rv嚇le姻tR薪eq策ue榮st的ge攻tS處es茄si臂on()方法與用于獲取皺或創(chuàng)建墊會(huì)話棵,其妄語法僑如下米:pu麻bl訴icHt廟tp吉Se唇ss激io窩nge句tS轎es識(shí)si誕on()棵;pu紫bl氣icHt蒼tp礙Se顏ss包io雪nge修tS竭es匪si敲on窯(b萬oo般le降anva肢lu飯e)河;如果悅沒有膏與當(dāng)址前請(qǐng)用求關(guān)卡聯(lián)的輛會(huì)話胃,則ge奶tS宵es仰si份on()方法受用于謙創(chuàng)建因會(huì)話纏。如果聚布爾保值為tr潔ue且當(dāng)它前沒桌有與稅請(qǐng)求豎關(guān)聯(lián)歡的會(huì)頑話,春則使余用ge辱tS唉es駁si影on濫(b西oo陽le男anva半lu臂e)創(chuàng)建挽會(huì)話盲。如捐果布敘爾值將為fa卻ls醉e,如眼果沒鑰有與秩當(dāng)前畏請(qǐng)求購(gòu)關(guān)聯(lián)渠的會(huì)豬話,繁返回nu鋼ll。17示例創(chuàng)建拋會(huì)話姜對(duì)象淚,要齡求判躁斷會(huì)突話是廁已經(jīng)睡存在滴,還臘是剛紋剛創(chuàng)初建。18運(yùn)行重新兆刷新競(jìng)請(qǐng)求19會(huì)話筍跟蹤窩技術(shù)會(huì)話媽跟蹤捕技術(shù)隱藏恐表單脊域UR情L(zhǎng)重寫Co俊ok宗ie以下多是各疊種會(huì)棉話跟役蹤技滑術(shù):20隱藏貿(mào)表單侵域?qū)?huì)虎話信秩息??拼嬖隈R隱藏塞域中扇,但釀是不膛會(huì)顯晉示在宿客戶金端瀏貿(mào)覽器編中<f碧or惕m騙ac最ti安on曉=鍬“膀\\fi芹rs幼th喝tm硬l.毛js雀p”暫me墾th占o(jì)d別=”疼PO壞ST測(cè)”><i導(dǎo)np于ut呀t妙yp及e狠=絨“hi探dd僚en”計(jì)na這me弓=“pr憐od雅uc丙ti繳d”當(dāng)va面lu潛e=值“1嘴23憤”></草fo意rm塘>在GE工T和PO領(lǐng)ST方法尖中指艦定用訓(xùn)于存添儲(chǔ)有晉關(guān)會(huì)著話消槍息的駐名稱丈和值是。21會(huì)話璃跟蹤毫實(shí)例-122運(yùn)行23UR截L重寫如果烤客戶忽不接防受co巾ok伏ie僑,可以抵把UR蚊L重寫自作為惜一條酸后路畏,即壤使用Ht集tp哲Se虛rv密le刺tR古es令po梳ns外e對(duì)象勁的en去co罰dU疫RL方法方把服舒務(wù)器綱端生圣成的肅會(huì)話ID傳到知客戶芬端,閘客戶鳥端下底次請(qǐng)?jiān)髸r(shí)太,顯示包含嫩會(huì)話ID的信刷息發(fā)壞送到悠服務(wù)速器UR巷L(fēng)+喬;j科se濾ss愧io禿ni顫d=會(huì)話ID注意驗(yàn):容維器一微般先映會(huì)使頸用co淺ok落ie來完支成會(huì)味話管求理,特只有次當(dāng)co且ok助ie方法爬失敗擺時(shí),滔顯示結(jié)地UR有L編碼匠才起走作用私(UR濃L重寫該自動(dòng)澆發(fā)生驗(yàn))靜態(tài)龜頁(yè)面籃不能UR附L重寫24會(huì)話送跟蹤曲實(shí)例-2ge雕tC以on訂te家xt框Pa陪th()返回鐘上下雷文路肚徑,en混co滑de記UR胃L()將字結(jié)符串佩轉(zhuǎn)換委為UR準(zhǔn)L路徑25運(yùn)行26Co醋o(hù)k寄ie饅-1容器搜必須任以某櫻種方校式把飼會(huì)話ID作為按響應(yīng)唐的一拔部分障交給喇客戶敬,而米客戶古必須畫把會(huì)單話ID作為墊請(qǐng)求趕的一英部分定發(fā)回般。最厭常用窗的方父式是廚通過co溪ok繼ie交換完這個(gè)壺會(huì)話ID信息詠。Co線ok章ie用于脅存儲(chǔ)We建b服務(wù)婦器發(fā)腰送給踢客戶幫端的城信息進(jìn)。服戲務(wù)器精通過肅設(shè)置木響應(yīng)您標(biāo)題喉中的Se望t-跳Co紙ok彩ie方法炸來發(fā)標(biāo)送co普ok角ie。其知語法出如下澇:在響掘應(yīng)中錫發(fā)送停一個(gè)興會(huì)話co逝ok歸ie衡(n繳am縫e=v陰al盤ue焦)Ht油tp職Se溝ss掙io福nse練ss瀉io沃n=re娃qu附es蜻t.冶ge腸tS巡壽es鐘si的on()拐;該方留法不鉗只是琴創(chuàng)建違一個(gè)遍會(huì)話扎,在蔽請(qǐng)求堤上第瘋一次壓調(diào)用偵該方切法時(shí)珠,會(huì)覺導(dǎo)致堡響應(yīng)層發(fā)一個(gè)co牌ok殖ie構(gòu);客戶棍端將查接收率并保衡存該co農(nóng)ok瓦ie冠,客戶私端每委次訪捎問該躍服務(wù)怕器上股的頁(yè)時(shí),拍會(huì)將co恭ok降ie發(fā)回紅到服壩務(wù)器注)co端ok藝ie與會(huì)歲話的曬壽命逼一樣撞長(zhǎng),索一旦易客戶訂離開該瀏覽死器,co捆ok親ie就會(huì)際消失應(yīng),但草可以免設(shè)置co名ok散ie在客雜戶端情上待字得更壩久一始些,喝甚至穿在瀏論覽器孔關(guān)閉硬之后忠還持貼久保柏存Se慎t-廊Co賽ok醫(yī)i

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論