• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Tom cat環(huán)境下JSP中文亂碼問題的解決

    2011-08-15 00:53:01
    關(guān)鍵詞:編碼方式亂碼表單

    彭 立

    (湖南第一師范學(xué)院信息科學(xué)與工程系,湖南 長(zhǎng)沙 410205)

    Tom cat環(huán)境下JSP中文亂碼問題的解決

    彭 立

    (湖南第一師范學(xué)院信息科學(xué)與工程系,湖南 長(zhǎng)沙 410205)

    Web服務(wù)器Tom cat的中文亂碼問題給軟件開發(fā)人員帶來(lái)了很大的困惑。為解決這一問題,可通過(guò)分析各種編碼方式之間的相互轉(zhuǎn)換,發(fā)現(xiàn)中文亂碼問題的根源,并對(duì)各種出錯(cuò)情況進(jìn)行分析,找出解決問題的辦法。

    Tomcat;JSP;中文亂碼;編碼;轉(zhuǎn)換

    一、引言

    Tomcat作為SUN公司官方推薦的JSP和Servlet容器,因其開源、免費(fèi)、跨平臺(tái)、配置簡(jiǎn)單等特點(diǎn),得到了廣大軟件開發(fā)人員的喜愛。然而,在中文操作系統(tǒng)上用Tomcat作為Web服務(wù)器來(lái)開發(fā)網(wǎng)站時(shí),會(huì)出現(xiàn)中文亂碼問題,從而給軟件開發(fā)人員帶來(lái)了很大的困惑。有人對(duì)這些問題進(jìn)行過(guò)分析,但提出的解決辦法并不全面也不完全正確。Tomcat環(huán)境下的中文亂碼問題涉及范圍很廣,本文旨在解決其中的一類問題:JSP中文亂碼問題。現(xiàn)將Tomcat環(huán)境下常見的JSP中文亂碼問題列舉如下:

    問題一:JSP(以下都將JSP文件簡(jiǎn)稱為JSP)本身包含的中文內(nèi)容在IE(以下都將IE瀏覽器簡(jiǎn)稱為IE)中顯示為亂碼。

    問題二:表單通過(guò)POST方式提交給JSP的中文信息在IE中顯示為亂碼。

    問題三:表單通過(guò)GET方式提交給JSP的中文信息在IE中顯示為亂碼。

    為了解決Tomcat環(huán)境下JSP中文亂碼問題,有必要先了解該環(huán)境下使用的編碼方式。

    二、Tom cat的編碼方式

    解決其他系統(tǒng)軟件的中文亂碼問題所獲得的經(jīng)驗(yàn)告訴我們,中文亂碼問題往往跟字符的編碼方式有關(guān)。編碼方式是指字符在計(jì)算機(jī)內(nèi)的表現(xiàn)形式,也就是機(jī)內(nèi)碼。在Tomcat環(huán)境下使用的編碼方式(即字符集)主要有四種:UNICODE、UFT-8、GB2312-80/GBK和ISO-8859-1。

    (一)UN ICODE

    UNICODE是Java內(nèi)部采用的編碼方式,也就是說(shuō),當(dāng)Java程序運(yùn)行時(shí),數(shù)據(jù)都會(huì)轉(zhuǎn)換為UNICODE編碼保存在內(nèi)存中。UNICODE是DBCS(雙字節(jié)字符集),它和任意國(guó)家/區(qū)域使用的本地字符集之間存在相互映射的關(guān)系,通過(guò)這樣一種映射關(guān)系,它和本地字符集可相互轉(zhuǎn)換。Java虛擬機(jī)通過(guò)操作系統(tǒng)的Codepage得知系統(tǒng)采用的字符集后,就可以使Java程序中的數(shù)據(jù)在UNICODE編碼和本地字符編碼之間相互轉(zhuǎn)換。

    (二)UTF-8

    UTF-8以8個(gè)二進(jìn)制位為單元對(duì)UNICODE進(jìn)行編碼,它是網(wǎng)絡(luò)數(shù)據(jù)傳輸以及Java類文件所采用的編碼方式。Tomcat環(huán)境下的JSP編譯成的Servlet類文件就是以UTF-8編碼方式保存的。UTF-8編碼的長(zhǎng)度不一,通常西文字符為一個(gè)字節(jié),而漢字需三個(gè)字節(jié)。

    (三)GB2312-80/GBK

    GB2312-80/GBK是漢字的國(guó)際碼。中文操作系統(tǒng)中漢字的編碼方式都為GB2312-80/GBK,而西文字符的編碼方式為ISO-8859-1。GB2312-80/GBK是DBCS,其中GB2312-80只能表示簡(jiǎn)體字,它包含了大部分常用的一、二級(jí)漢字和9區(qū)的符號(hào);GBK是GB2312-80 的擴(kuò)展,既可表示簡(jiǎn)體字也可表示繁體字,它包含了20902個(gè)漢字,其編碼范圍是0X8140~0XFEFE,剔除高字節(jié)為0X80的字位,其所有字符都可以一對(duì)一映射到UNICODE 2.0。

    (四)ISO-8859-1

    ISO-8859-1是SBCS(單字節(jié)字符集),屬于西歐字符集,它是Tomcat默認(rèn)的編碼方式。如無(wú)特殊說(shuō)明,在編譯JSP時(shí),Tomcat會(huì)把JSP的編碼方式默認(rèn)看成ISO-8859-1;接收表單輸入數(shù)據(jù)時(shí),Tomcat會(huì)將數(shù)據(jù)的編碼方式默認(rèn)看成ISO-8859-1;輸出數(shù)據(jù)到IE時(shí),Tomcat會(huì)默認(rèn)將數(shù)據(jù)從UNICODE編碼轉(zhuǎn)換為ISO-8859-1編碼。

    三、編碼方式的轉(zhuǎn)換

    在Java程序運(yùn)行時(shí),數(shù)據(jù)以UNICODE編碼的形式保存在內(nèi)存中,Tomcat根據(jù)需要,可將其轉(zhuǎn)換為UFT-8編碼、GB2312-80編碼或ISO-8859-1編碼,也可轉(zhuǎn)換回來(lái)。Tomcat環(huán)境下的JSP從編譯到輸出,中間要經(jīng)過(guò)多次編碼轉(zhuǎn)換;JSP接收表單數(shù)據(jù)后輸出到IE,期間也涉及到多次編碼轉(zhuǎn)換。

    (一)UN ICODE和UFT-8之間的轉(zhuǎn)換

    UNICODE和UFT-8之間的轉(zhuǎn)換通常是網(wǎng)絡(luò)傳輸和保存文件的需要。因?yàn)閁NICODE和UFT-8是一一對(duì)應(yīng)的,這兩者之間的轉(zhuǎn)換通常不會(huì)造成中文亂碼問題。

    (二)UN ICODE和GB2312-80之間的轉(zhuǎn)換

    GB2312-80中所有的字符編碼都可轉(zhuǎn)換為對(duì)應(yīng)的UNICODE編碼,例如,漢字“你”的GB2312-80編碼為0XC4E3,對(duì)應(yīng)的UNICODE編碼為U4F60。但是,一個(gè)不在GB2312-80中的字符編碼被當(dāng)作GB2312-80轉(zhuǎn)換為UNICODE時(shí),會(huì)被轉(zhuǎn)換為一個(gè)特殊編碼UFFFD。反過(guò)來(lái),并不是所有的UNICODE編碼都能轉(zhuǎn)換為GB2312-80編碼,只有漢字字符的UNICODE編碼才能被轉(zhuǎn)換為對(duì)應(yīng)的GB2312-80編碼,例如,漢字“好”的 UNICODE編碼為U597D,對(duì)應(yīng)的GB2312-80編碼為0XBAC3。不能映射到GB2312-80的UNICODE編碼轉(zhuǎn)換為GB2312-80編碼時(shí),結(jié)果為0X3F,顯示出來(lái)是“?”。又如,U00D6轉(zhuǎn)換為GB2312-80編碼為0X3F。UNICODE編碼U00A0~U00FF之間有20個(gè)編碼在轉(zhuǎn)換為GB2312-80編碼后,顯示出來(lái)都是亂碼字符。再如,U00EC轉(zhuǎn)換為GB2312-80編碼為0XA8AC,顯示出來(lái)為亂碼字符“ì”。

    (三)UN ICODE和ISO-8859-1之間的轉(zhuǎn)換

    ISO-8859-1中所有的字符編碼都可轉(zhuǎn)換為對(duì)應(yīng)的UNICODE編碼,轉(zhuǎn)換方法為:在ISO-8859-1編碼的前面加上0X00。例如字符“A”的ISO-8859-1編碼為0X41,對(duì)應(yīng)的UNICODE編碼為0X0041。一個(gè)不在ISO-8859-1中的字符編碼被轉(zhuǎn)換為UNICODE編碼時(shí),系統(tǒng)并不效驗(yàn)被轉(zhuǎn)換的是否為ISO-8859-1編碼,而是直接按轉(zhuǎn)換方法在編碼的前面加上0X00。反過(guò)來(lái),并不是所有的UNICODE編碼都能轉(zhuǎn)換為ISO-8859-1編碼。如果UNICODE中某個(gè)字符編碼能被轉(zhuǎn)換為ISO-8859-1編碼,那么它的高字節(jié)必為0X00,去掉高字節(jié)0X00,保留低字節(jié),便形成了對(duì)應(yīng)的ISO-8859-1編碼,例如,字符“B”的UNICODE編碼為 U0042,對(duì)應(yīng)的ISO-8859-1編碼為0X42。不能映射到ISO-8859-1的UNICODE編碼被轉(zhuǎn)換為ISO-8859-1編碼時(shí),結(jié)果為0X3F,顯示出來(lái)是“?”,又如漢字“好”的UNICODE編碼為U597D,轉(zhuǎn)換為ISO-8859-1編碼為0X3F[1]。

    四、Tom cat中文亂碼問題的原因

    在Tomcat環(huán)境下,字符通常要經(jīng)過(guò)“編碼方式A→UNICODE→編碼方式B”這樣一個(gè)過(guò)程,才能最終輸出。

    現(xiàn)以漢字“的”為例,看看在GB2312-80→UNICODE→ISO-8859-1和 ISO-8859-1→UNICODE→GB2312-80這兩種情況下分別會(huì)出現(xiàn)什么問題。“的”字的GB2312-80編碼為0XB5C4。在第一種情況下,“的”字的編碼方式被看作是GB2312-80,轉(zhuǎn)換成的UNICODE編碼為U7684,再由UNICODE編碼轉(zhuǎn)換成ISO-8859-1編碼后,結(jié)果是0X3F,顯示出來(lái)是一個(gè)“?”號(hào)。在第二種情況下,“的”字的編碼方式被看作ISO-8859-1,轉(zhuǎn)換成的UNICODE編碼為U00B5U00C4,再由UNICODE編碼轉(zhuǎn)化為GB2312-80編碼后,結(jié)果是0XA6CC0X3F,顯示出來(lái)是“μ?”這樣兩個(gè)亂碼字符。

    可以看出以上兩種情況都會(huì)造成中文亂碼問題,錯(cuò)誤的編碼轉(zhuǎn)換過(guò)程是Tomcat中文亂碼問題的根源。

    五、JSP中文亂碼問題的分析和解決

    (一)問題一的分析和解決

    Tomcat環(huán)境下的JSP被IE訪問時(shí)要經(jīng)過(guò)“編譯成Servlet→載入運(yùn)行→輸出到IE”這樣三個(gè)階段。現(xiàn)分析一下在每個(gè)階段中編碼方式是如何轉(zhuǎn)換的。

    1.編譯成Servlet

    當(dāng)JSP被IE訪問時(shí),Tomcat會(huì)采取以下方式來(lái)判斷JSP采用了哪種編碼方式:首先,它會(huì)檢查JSP中是否有 <%@page pageEncoding=”xx”%> 這行語(yǔ)句(只有JSP2.0才支持這種的語(yǔ)句),如果有,它會(huì)把JSP的編碼方式看成是xx;否則,它會(huì)檢查JSP 中 是 否 有 <%@page contentType=”text/html;charset=yy”%>這行語(yǔ)句,如果有,它會(huì)把JSP的編碼方式看成是yy;如果兩者都無(wú),它會(huì)把JSP的編碼方式默認(rèn)看成ISO-8859-1。確定了JSP的編碼方式后(盡管不一定與實(shí)際相符),Tomcat會(huì)將JSP從該編碼方式轉(zhuǎn)換為UNICODE編碼[2],并將UNICODE編碼的JSP編譯為Servlet類文件,然后將Servlet類文件從UNICODE編碼轉(zhuǎn)換為UFT-8編碼,并保存在磁盤上。

    2.載入運(yùn)行

    JSP編譯成的Servlet類文件被載入內(nèi)存運(yùn)行時(shí),Tomcat會(huì)將Servlet類文件由UFT-8編碼轉(zhuǎn)換回UNICODE編碼。因?yàn)閁FT-8編碼和UNICODE編碼是一一對(duì)應(yīng)的,UFT-8和UNICODE間的相互轉(zhuǎn)換不會(huì)導(dǎo)致亂碼問題。

    3.輸出到IE

    Servlet將信息輸出到IE之前,Tomcat會(huì)檢查其對(duì)應(yīng)的 JSP中是否有 <%@page contentType=”text/html;charset=xx”%>這行語(yǔ)句。如果有,Tomcat會(huì)將輸出信息由UNICODE編碼轉(zhuǎn)換為xx編碼,然后輸出到IE,IE的編碼方式也會(huì)自動(dòng)被設(shè)置為xx;如果JSP中沒有以上語(yǔ)句,但有<%@page pageEncoding=”yy”%> 這行語(yǔ)句,Tomcat會(huì)將輸出信息由UNICODE編碼轉(zhuǎn)換為yy編碼,然后輸出到IE,IE的編碼方式也會(huì)自動(dòng)被設(shè)置為yy;如果JSP中以上兩種語(yǔ)句都沒有,Tomcat會(huì)將輸出信息由UNICODE編碼默認(rèn)轉(zhuǎn)換為ISO-8859-1編碼,然后輸出到IE,IE的編碼方式會(huì)被自動(dòng)設(shè)置為ISO-8859-1。

    通過(guò)以上分析可以看出,Tomcat環(huán)境下的JSP被IE訪問時(shí)要經(jīng)過(guò)“編碼方式A→UNICODE→編碼方式B”這樣一個(gè)過(guò)程,這一過(guò)程中的錯(cuò)誤編碼轉(zhuǎn)換會(huì)導(dǎo)致問題一的出現(xiàn)。問題一通常由以下兩種情況造成:

    情況一:JSP中沒有包含語(yǔ)句 <%@page pageEncoding=”xx”%> 和 <%@page contentType=”text/html;charset=yy”%>。假設(shè)JSP中有一漢字“的”(以下都以“的”字為例),現(xiàn)分析為什么“的”字在IE中顯示時(shí)會(huì)變成亂碼。在中文操作系統(tǒng)中,JSP以GB2312-80編碼保存,因此,JSP文件中“的”字的編碼為0XB5C4。因?yàn)镴SP中沒有以上兩種語(yǔ)句,在對(duì)JSP進(jìn)行編譯時(shí),Tomcat會(huì)把JSP的編碼方式默認(rèn)當(dāng)作ISO-8859-1,從而將0XB5C4轉(zhuǎn)換為UNICODE編碼U00B5U00C4。Servlet輸出信息到IE時(shí),因JSP源文件中沒有以上兩種語(yǔ)句,Tomcat會(huì)將UNICODE編碼U00B5U00C4轉(zhuǎn)換為ISO-8859-1編碼0XB5C4,然后輸出到IE。因?yàn)镮E的編碼方式會(huì)被自動(dòng)設(shè)置為ISO-8859-1,它將編碼0XB5C4顯示為亂碼“μ?”。

    情況二:JSP中同時(shí)包含有語(yǔ)句 <%@page pageEncoding=”xx”% > 和 <%@page contentType=”text/htm l;charset=yy”%>,但xx和yy之中只有一個(gè)為GB2312-80,另一個(gè)為ISO-8859-1。如果xx為GB2312-80,yy 為 ISO-8859-1,“的”字在輸出時(shí),它的編碼會(huì)經(jīng)歷0XB5C4→U7684→0X3F這樣一個(gè)轉(zhuǎn)換過(guò)程,最終在IE中顯示為一個(gè)“?”號(hào)。如果xx 為 ISO-8859-1,yy 為 GB2312-80,“的”字在輸出時(shí),它的編碼會(huì)經(jīng)歷0X B5C4→U00b5U00c4→0XA6CC0X3F這樣一個(gè)轉(zhuǎn)換過(guò)程,最終在IE中顯示為“μ?”這樣兩個(gè)亂碼字符。

    解決問題一的方法很簡(jiǎn)單,只要在JSP中包含語(yǔ) 句 <%@page pageEncoding=”GB2312-80”%> 或<%@page contentType=”text/htm l;charset=GB2312-80”%>即可,這樣就可以保證JSP中的中文內(nèi)容在編譯時(shí)由GB2312-80編碼轉(zhuǎn)換為UNICODE編碼,在輸出時(shí)由UNICODE編碼轉(zhuǎn)換回GB2312-80編碼。如果要在JSP中同時(shí)使用這兩種語(yǔ)句,要確保兩種語(yǔ)句中的編碼方式都為GB2312-80。

    (二)問題二、問題三的分析和解決

    除了被IE直接訪問,JSP還可以被表單調(diào)用,從而實(shí)現(xiàn)表單輸入信息由JSP接收后再輸出到IE顯示。表單調(diào)用JSP時(shí),實(shí)質(zhì)上是調(diào)用其編譯而成的Servlet。表單輸入信息由IE傳給Tomcat,再由Tomcat傳給運(yùn)行中的Servlet,最后由Servlet輸出到IE進(jìn)行顯示。之前已對(duì)Servlet輸出信息到IE時(shí)出現(xiàn)的編碼轉(zhuǎn)換進(jìn)行過(guò)分析,這里不再贅述,接下來(lái)只對(duì)表單輸入信息經(jīng)Tomcat傳遞給Servlet時(shí)出現(xiàn)的編碼轉(zhuǎn)換進(jìn)行分析。表單調(diào)用JSP時(shí),通常采取兩種方式:POST方式和GET方式。

    1.POST方式

    在POST方式下,表單輸入數(shù)據(jù)放在IE請(qǐng)求消息的實(shí)體部分傳給Tomcat。Servlet中的Request對(duì)象通過(guò)getParameter方法向Tomcat請(qǐng)求表單輸入數(shù)據(jù)時(shí),Tomcat會(huì)檢查Request對(duì)象的編碼方式屬性。如果在Request對(duì)象調(diào)用getParameter方法之前,其編碼方式屬性已通過(guò)request.setCharacterEncoding(“xx”)語(yǔ)句被設(shè)置成xx,Tomcat會(huì)把輸入數(shù)據(jù)的編碼方式看成是xx。如果Servlet中沒有這行語(yǔ)句,Tomcat會(huì)將輸入數(shù)據(jù)的編碼方式默認(rèn)看成是ISO-8859-1。確定了表單輸入數(shù)據(jù)的編碼方式后(盡管不一定與實(shí)際相符),Tomcat會(huì)將輸入數(shù)據(jù)從該編碼方式轉(zhuǎn)換為UNICODE編碼,然后傳遞給Servlet[3]。

    可以發(fā)現(xiàn)在POST方式下,表單輸入數(shù)據(jù)通過(guò)JSP輸出到IE時(shí),同樣要經(jīng)歷“編碼方式A→UNICODE→編碼方式B”這樣一個(gè)過(guò)程,這一過(guò)程中的錯(cuò)誤編碼轉(zhuǎn)換會(huì)導(dǎo)致問題二的出現(xiàn)。問題二通常由以下兩種情況造成(假定在這兩種情況中,表單所在的HTML頁(yè)面的編碼方式都為GB2312-80,那么表單中的漢字信息在傳給Tomcat時(shí),編碼方式都為GB2312-80):

    情況一:JSP中既沒有語(yǔ)句<%@page pageEncoding=”xx”%> 和 <%@page contentType=”textml;charset=yy”%>,也沒有語(yǔ)句request.setCharacterEncoding(“zz”)。因?yàn)镴SP中沒有語(yǔ)句request.setCharacterEncoding(“zz”),Tomcat會(huì)將表單輸入數(shù)據(jù)的編碼方式看成是ISO-8859-1,并轉(zhuǎn)換成UNICODE編碼,因此“的”字的編碼會(huì)從0XB5C4轉(zhuǎn)換為U00B5U00C4。Servlet輸出信息到IE時(shí),因?yàn)镴SP中沒有語(yǔ)句 <%@page pageEncoding=”xx”%> 和<%@page contentType=”textml;charset=yy”%>,Tomcat會(huì)將編碼U00B5U00C4轉(zhuǎn)換為ISO-8859-1編碼0XB5C4,并輸出到IE。因?yàn)镮E的編碼方式會(huì)被自動(dòng)設(shè)置為ISO-8859-1,編碼0XB5C4顯示為亂碼“μ?”。

    情況二:JSP中包含有語(yǔ)句<%@page pageEncoding=”GB2312-80”%> 或 <%@page contentType=”textml;charset=GB2312-80”%>,但沒有語(yǔ)句request.setCharacterEncoding(“zz”)。情況二和情況一的不同之處在于:情況二的JSP中包含了語(yǔ)句<%@page pageEncoding=”GB2312-80”%> 或 <%@page content-Type=”textml;charset=GB2312-80”%>,因此”的“字被Servlet輸出到IE時(shí),它的編碼會(huì)從U00B5U00B4轉(zhuǎn)換為GB2312-80編碼0XA6CC0X3F,輸出到IE顯示為“μ?”這樣兩個(gè)亂碼字符。

    解決問題二有兩種方法。

    方法一:確保JSP中包含有語(yǔ)句<%@page pageEncoding=”GB2312-80”%> 或 <%@page content-Type=”textm l;charset=GB2312-80”%>,此外,在 Request對(duì)象調(diào)用getParameter方法之前加上語(yǔ)句request.setCharacterEncoding(“GB2312-80”)。這種方法可確保表單中輸入的中文信息通過(guò)JSP輸出到IE時(shí)會(huì)經(jīng)過(guò)GB2312-80→UNICODE→GB2312-80這樣一個(gè)正確的編碼轉(zhuǎn)換過(guò)程。

    方法二:確保JSP中包含有語(yǔ)句<%@page pageEncoding=”GB2312-80”%> 和 <%@page content-Type=”textml;charset=GB2312-80”%>,此外,將 Request對(duì)象調(diào)用getParameter方法的語(yǔ)句改為String Output=new(request.getParameter(“Input”).getBytes(“ISO8859_1”)),然后輸出字符串Output即可。現(xiàn)說(shuō)明一下這種方法為什么可行。在request.getParameter(“Input”)執(zhí)行之前,并沒有設(shè)置Request對(duì)象的編碼方式,因此表單中漢字的編碼方式被當(dāng)成是ISO-8859-1,然后轉(zhuǎn)換成UNICODE傳給Servlet,因而,“的”字的編碼從0XB5C4轉(zhuǎn)換為U00B5U00C4。調(diào)用了getBytes(“ISO8859_1”)方法后,“的”字的編碼又變回了0XB5C4,相當(dāng)于又變成了GB2312-80編碼。通過(guò)new方法生成字符串 Output時(shí),該GB2312-80編碼會(huì)轉(zhuǎn)換成對(duì)應(yīng)的UNICODE編碼。在字符串Output被輸出時(shí),字符串的內(nèi)容從UNICODE編碼轉(zhuǎn)換成GB2312-80編碼輸出。通過(guò)以上分析發(fā)現(xiàn),該方法可確保表單中輸入的中文信息通過(guò)JSP輸出時(shí)會(huì)經(jīng)過(guò)ISO-8859-1→UNICODE→ISO-8859-1(GB2312-80)→UNICODE→GB2312-80這樣一個(gè)正確的編碼轉(zhuǎn)換過(guò)程。

    2.GET方式

    在GET方式下,表單輸入數(shù)據(jù)放在IE請(qǐng)求消息的請(qǐng)求行之中傳給Tomcat。通過(guò)查看Tomcat的源代碼可以發(fā)現(xiàn),Tomcat對(duì)GET方式下表單輸入數(shù)據(jù)的處理采用了和POST方式不同的方法。當(dāng)Request對(duì)象通過(guò)getParameter方法向Tomcat請(qǐng)求表單輸入數(shù)據(jù)時(shí),Tomcat不會(huì)檢查Request對(duì)象的編碼方式屬性,而是檢查配置文件server.xml中port值為 8080的 connector元素的 URIEncoding屬性,并將表單輸入數(shù)據(jù)的編碼方式看成URIEncoding屬性所設(shè)置的編碼方式。如果server.xml中port值為8080的connector元素沒有對(duì)URIEncoding屬性進(jìn)行設(shè)置,Tomcat會(huì)將輸入數(shù)據(jù)的編碼方式默認(rèn)當(dāng)作ISO-8859-1[4]。

    知道了Tomcat在GET方式下對(duì)表單輸入數(shù)據(jù)所采用的處理方法,不難為問題三找到解決辦法,主要有兩種:

    方法一:確保JSP中包含有語(yǔ)句<%@page pageEncoding=”GB2312-80”%> 或 <%@page content-Type=”textml;charset=GB2312-80”%>,此外,將配置文件server.xml中port值為8080的connector元素的URIEncoding屬性設(shè)置為GB2312-80。這種方法可確保表單中輸入的中文信息通過(guò)JSP輸出到IE時(shí)會(huì)經(jīng)過(guò)GB2312-80→UNICODE→GB2312-80這樣一個(gè)正確的編碼轉(zhuǎn)換過(guò)程。

    方法二:確保JSP中包含有語(yǔ)句<%@page pageEncoding=”GB2312-80”%> 和 <%@page content-Type=”textml;charset=GB2312-80”%>,此外,將 JSP中Request對(duì)象調(diào)用getParameter方法的語(yǔ)句改為String Output=new(request.getParameter(“Input”).get-Bytes(“ISO8859_1”)),然后輸出字符串Output即可。此方法可行的原因和問題二的方法二相同,此處不再累述。這種方法可確保表單中輸入的中文信息通過(guò) JSP輸出到 IE時(shí)會(huì)經(jīng)過(guò) ISO-8859-1→UNICODE→ISO-8859-1(GB2312-80)→UNICODE→GB2312-80這樣一個(gè)正確的編碼轉(zhuǎn)換過(guò)程。

    六、結(jié)語(yǔ)

    Tomcat環(huán)境下JSP中文亂碼問題的根源是錯(cuò)誤的編碼轉(zhuǎn)換過(guò)程,對(duì)各種出錯(cuò)情況進(jìn)行分析后,不難找出這些問題的解決辦法。以上分析對(duì)解決Tomcat環(huán)境下其他類型的中文亂碼問題也具有指導(dǎo)作用。文中的測(cè)試都是在Tomcat5.0.28下進(jìn)行的,所有的解決方法都在該版本下驗(yàn)證通過(guò)。

    [1]JrneforsO.AshortoverviewofISO/IEC10646andUni code[DB/OL].http://www.nada.kth.se/i18n/ucs/unicodeiso10646-oview.htm l

    [2]LindenbergN.DevelopingMultilingualWebApplications UsingJavaServerPagesTechnology[DB/OL].http://java.sun.com/developer/technicalArticles/Intl/MultilingualJSP/index.htm l

    [3]孫衛(wèi)琴,李洪成.Tomcat與JavaWeb開發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2004.

    [4]Apache Software Foundation.ApacheTomcatConfiguration ReferenceTheHTTPConnector[DB/OL].http://tom cat.apache.org/tomcat-5.5-doc/config/http.htm l

    The Solution to Chinese Lousy Code Problemsof JSPon Tom cat

    PENG Li

    (Departmentof Information Science and Engineering,Hunan FirstNormalUniversity,Changsha,Hunan 410205)

    Chinese lousy code problems on Web server Tomcat have been puzzling software developers.To solve thisproblem,one should analyze the conversion between every encoding and find the reason that Chinese lousy code problemsare caused by false encoding-conversion processes.Then a solution to the problem may be found after a furtheranalysisofeach w rong case.

    Tomcat;JSP;Chinese lousy code;encoding;conversion

    TP311.1

    A

    1674-831X(2011)04-0128-05

    2011-01-09

    湖南第一師范學(xué)院院級(jí)課題(XYS10N09)

    彭立(1974—),男,湖南汨羅人,湖南第一師范學(xué)院信息科學(xué)與工程系講師。

    [責(zé)任編輯:胡 偉]

    猜你喜歡
    編碼方式亂碼表單
    電子表單系統(tǒng)應(yīng)用分析
    華東科技(2021年9期)2021-09-23 02:15:24
    這些真的不是亂碼,是漢字
    淺談網(wǎng)頁(yè)制作中表單的教學(xué)
    GCOA算法
    可穿戴式多通道傳感系統(tǒng)功能需求分析及設(shè)計(jì)
    混合編碼方式自適應(yīng)差分進(jìn)化算法優(yōu)化設(shè)計(jì)寬帶天線
    炫邁:用神奇亂碼勾引你視線
    淺談?dòng)?jì)算機(jī)網(wǎng)絡(luò)通信中實(shí)時(shí)差錯(cuò)控制技術(shù)
    基于Infopath實(shí)現(xiàn)WEB動(dòng)態(tài)表單的研究
    電子世界(2012年24期)2012-12-17 10:49:06
    動(dòng)態(tài)表單技術(shù)在教學(xué)管理中的應(yīng)用*
    国产精品免费一区二区三区在线| 老熟妇乱子伦视频在线观看| 成人18禁高潮啪啪吃奶动态图| av片东京热男人的天堂| 国产精品美女特级片免费视频播放器 | 不卡一级毛片| 人妻夜夜爽99麻豆av| 久久国产精品影院| 国产亚洲精品久久久久久毛片| 国产午夜精品论理片| 精品国产乱码久久久久久男人| 床上黄色一级片| 久久九九热精品免费| 午夜成年电影在线免费观看| 老熟妇乱子伦视频在线观看| 国产不卡一卡二| 性色av乱码一区二区三区2| 午夜激情福利司机影院| 国产精品野战在线观看| 久久久久亚洲av毛片大全| 床上黄色一级片| 99在线视频只有这里精品首页| 国产片内射在线| 曰老女人黄片| 免费av毛片视频| 啪啪无遮挡十八禁网站| 特大巨黑吊av在线直播| 不卡av一区二区三区| 2021天堂中文幕一二区在线观| 视频区欧美日本亚洲| 亚洲一卡2卡3卡4卡5卡精品中文| 亚洲av中文字字幕乱码综合| 一进一出抽搐gif免费好疼| 久久久久久久久久黄片| 欧美黑人巨大hd| 老司机福利观看| 少妇熟女aⅴ在线视频| 无遮挡黄片免费观看| 一个人免费在线观看的高清视频| www国产在线视频色| 久久久久免费精品人妻一区二区| 国产精品综合久久久久久久免费| 亚洲18禁久久av| 91国产中文字幕| 国产aⅴ精品一区二区三区波| 国产精品免费视频内射| 日韩欧美三级三区| 在线观看日韩欧美| 欧美乱码精品一区二区三区| 在线视频色国产色| 久久中文字幕人妻熟女| 国产日本99.免费观看| 免费一级毛片在线播放高清视频| 人人妻,人人澡人人爽秒播| 亚洲精品粉嫩美女一区| 最近在线观看免费完整版| 天堂影院成人在线观看| 动漫黄色视频在线观看| 九色成人免费人妻av| 后天国语完整版免费观看| 久久午夜综合久久蜜桃| 我的老师免费观看完整版| 99精品欧美一区二区三区四区| 桃红色精品国产亚洲av| 99精品在免费线老司机午夜| 国产高清视频在线播放一区| 国产一区二区激情短视频| 久9热在线精品视频| 久久久久久久久免费视频了| 男人舔女人的私密视频| 嫩草影院精品99| 精品一区二区三区四区五区乱码| 熟妇人妻久久中文字幕3abv| avwww免费| 亚洲aⅴ乱码一区二区在线播放 | 男女做爰动态图高潮gif福利片| 国产成人精品久久二区二区91| 久久草成人影院| 免费在线观看视频国产中文字幕亚洲| 国产男靠女视频免费网站| 久久久久久久午夜电影| bbb黄色大片| 麻豆一二三区av精品| 午夜福利高清视频| videosex国产| 国产成人欧美在线观看| 婷婷亚洲欧美| 99精品欧美一区二区三区四区| 欧美成狂野欧美在线观看| 99热这里只有是精品50| 日本免费一区二区三区高清不卡| 国产一区二区在线av高清观看| 别揉我奶头~嗯~啊~动态视频| 免费观看精品视频网站| 婷婷精品国产亚洲av在线| 久久久久久大精品| 欧美成人免费av一区二区三区| 国产免费男女视频| 欧美午夜高清在线| 亚洲一卡2卡3卡4卡5卡精品中文| 欧美日韩国产亚洲二区| 久久精品aⅴ一区二区三区四区| a级毛片在线看网站| 国产av一区在线观看免费| 一级黄色大片毛片| 十八禁网站免费在线| 成人av在线播放网站| 精品高清国产在线一区| 国产精品久久久av美女十八| 一边摸一边抽搐一进一小说| 中文在线观看免费www的网站 | 很黄的视频免费| 欧美乱码精品一区二区三区| 久久亚洲精品不卡| 午夜福利视频1000在线观看| 精品高清国产在线一区| 男女下面进入的视频免费午夜| a级毛片在线看网站| 制服人妻中文乱码| 亚洲全国av大片| 亚洲人成77777在线视频| 国产亚洲欧美98| 国产成+人综合+亚洲专区| 亚洲成人中文字幕在线播放| 欧美成人一区二区免费高清观看 | 日韩中文字幕欧美一区二区| АⅤ资源中文在线天堂| 欧美3d第一页| 在线a可以看的网站| 久久中文看片网| 给我免费播放毛片高清在线观看| 久久久久久久久中文| 久久久国产欧美日韩av| 久久精品国产亚洲av高清一级| 欧美日韩亚洲国产一区二区在线观看| 成人特级黄色片久久久久久久| 99精品欧美一区二区三区四区| 日本一区二区免费在线视频| netflix在线观看网站| 日韩欧美精品v在线| 亚洲欧美一区二区三区黑人| 丰满人妻熟妇乱又伦精品不卡| 久久精品91蜜桃| 亚洲熟妇中文字幕五十中出| 夜夜夜夜夜久久久久| 不卡av一区二区三区| 国产免费av片在线观看野外av| 男插女下体视频免费在线播放| 国产99久久九九免费精品| 好男人电影高清在线观看| 亚洲性夜色夜夜综合| 中出人妻视频一区二区| 精品一区二区三区视频在线观看免费| 久久中文字幕一级| 亚洲国产精品久久男人天堂| 国产高清视频在线播放一区| 岛国在线免费视频观看| 亚洲欧美日韩高清在线视频| 国产男靠女视频免费网站| 国产欧美日韩精品亚洲av| 日韩av在线大香蕉| 在线观看日韩欧美| 国产精品 欧美亚洲| 亚洲 欧美一区二区三区| 不卡av一区二区三区| 精品电影一区二区在线| 免费看十八禁软件| 久久草成人影院| 9191精品国产免费久久| 日本黄大片高清| 免费av毛片视频| 岛国在线免费视频观看| 最新在线观看一区二区三区| 国产激情偷乱视频一区二区| 国产午夜福利久久久久久| 免费av毛片视频| 国产成人精品久久二区二区91| 亚洲成a人片在线一区二区| 免费在线观看日本一区| 天天一区二区日本电影三级| 日韩免费av在线播放| 久久久水蜜桃国产精品网| 午夜激情福利司机影院| 国产视频一区二区在线看| 国产黄a三级三级三级人| 亚洲人成伊人成综合网2020| 欧美精品亚洲一区二区| 男女床上黄色一级片免费看| aaaaa片日本免费| 日韩精品中文字幕看吧| 琪琪午夜伦伦电影理论片6080| 女人被狂操c到高潮| 亚洲最大成人中文| 久久精品影院6| 最新在线观看一区二区三区| 三级国产精品欧美在线观看 | 亚洲色图 男人天堂 中文字幕| 成人精品一区二区免费| 国产蜜桃级精品一区二区三区| 99精品久久久久人妻精品| 99国产精品一区二区三区| 欧美午夜高清在线| www国产在线视频色| 又紧又爽又黄一区二区| 免费观看人在逋| 一本精品99久久精品77| 日本五十路高清| 一级片免费观看大全| 亚洲精品av麻豆狂野| 少妇人妻一区二区三区视频| 国产熟女午夜一区二区三区| 亚洲自偷自拍图片 自拍| 久久天堂一区二区三区四区| 亚洲成a人片在线一区二区| 在线a可以看的网站| 亚洲无线在线观看| 亚洲欧洲精品一区二区精品久久久| 亚洲一区二区三区色噜噜| 久久人妻福利社区极品人妻图片| 一级毛片女人18水好多| 欧美在线黄色| 国产成人av教育| 成年版毛片免费区| 久久中文字幕一级| 日日爽夜夜爽网站| 国产精品一及| 久久精品国产99精品国产亚洲性色| 亚洲成人免费电影在线观看| 成人午夜高清在线视频| 免费一级毛片在线播放高清视频| 亚洲男人天堂网一区| 狂野欧美激情性xxxx| 99久久99久久久精品蜜桃| 人人妻,人人澡人人爽秒播| 亚洲无线在线观看| 亚洲人与动物交配视频| 亚洲av片天天在线观看| 国产野战对白在线观看| 搡老妇女老女人老熟妇| 欧美成人免费av一区二区三区| 日韩精品中文字幕看吧| 少妇被粗大的猛进出69影院| 99国产精品一区二区蜜桃av| 成人亚洲精品av一区二区| 国产乱人伦免费视频| 免费av毛片视频| 成年人黄色毛片网站| 精品一区二区三区av网在线观看| 久久精品91蜜桃| 九色成人免费人妻av| 夜夜夜夜夜久久久久| 国产黄片美女视频| 88av欧美| 国产av一区在线观看免费| 婷婷精品国产亚洲av在线| 午夜福利视频1000在线观看| 麻豆成人av在线观看| 久久中文字幕人妻熟女| 一级毛片女人18水好多| 午夜免费观看网址| 老司机福利观看| 欧美又色又爽又黄视频| 一进一出抽搐动态| 999精品在线视频| 欧美黑人巨大hd| 一本综合久久免费| 亚洲av电影在线进入| 两个人看的免费小视频| 久久99热这里只有精品18| 国产区一区二久久| 久久婷婷成人综合色麻豆| 99久久无色码亚洲精品果冻| 在线十欧美十亚洲十日本专区| 亚洲精品粉嫩美女一区| 人妻丰满熟妇av一区二区三区| 在线观看一区二区三区| 国产v大片淫在线免费观看| 亚洲成人久久性| 欧美成人一区二区免费高清观看 | 天天躁狠狠躁夜夜躁狠狠躁| 99热6这里只有精品| 全区人妻精品视频| 这个男人来自地球电影免费观看| 曰老女人黄片| 欧美在线一区亚洲| 欧美精品啪啪一区二区三区| 精品免费久久久久久久清纯| 免费一级毛片在线播放高清视频| 床上黄色一级片| 九色国产91popny在线| 色噜噜av男人的天堂激情| 精品无人区乱码1区二区| 三级男女做爰猛烈吃奶摸视频| 国产成年人精品一区二区| 狂野欧美白嫩少妇大欣赏| 国产又黄又爽又无遮挡在线| 精品不卡国产一区二区三区| 亚洲熟妇中文字幕五十中出| 免费在线观看成人毛片| 久久久久国产精品人妻aⅴ院| 一进一出好大好爽视频| 欧美日韩福利视频一区二区| 国产亚洲精品av在线| 五月伊人婷婷丁香| 欧美乱妇无乱码| 欧美高清成人免费视频www| 亚洲真实伦在线观看| 51午夜福利影视在线观看| 亚洲第一电影网av| 麻豆久久精品国产亚洲av| 久久中文字幕人妻熟女| 法律面前人人平等表现在哪些方面| 精品少妇一区二区三区视频日本电影| 哪里可以看免费的av片| 成人特级黄色片久久久久久久| 国产精品一区二区精品视频观看| 国产免费男女视频| 1024香蕉在线观看| 免费搜索国产男女视频| 老司机深夜福利视频在线观看| 免费在线观看完整版高清| 成人18禁在线播放| 国产野战对白在线观看| 国产69精品久久久久777片 | 日韩免费av在线播放| 香蕉国产在线看| 白带黄色成豆腐渣| 国产精品日韩av在线免费观看| 久久热在线av| 久久欧美精品欧美久久欧美| 国产真实乱freesex| 亚洲中文字幕日韩| 女生性感内裤真人,穿戴方法视频| 黄色丝袜av网址大全| 精华霜和精华液先用哪个| 禁无遮挡网站| 中文亚洲av片在线观看爽| 天天添夜夜摸| 亚洲一区二区三区不卡视频| 五月伊人婷婷丁香| 99热这里只有精品一区 | 深夜精品福利| 久久婷婷成人综合色麻豆| 午夜福利欧美成人| 香蕉av资源在线| 一级作爱视频免费观看| 一区二区三区国产精品乱码| 亚洲自拍偷在线| 91成年电影在线观看| 特大巨黑吊av在线直播| 白带黄色成豆腐渣| 亚洲熟妇中文字幕五十中出| 青草久久国产| 国产av麻豆久久久久久久| 男人舔女人下体高潮全视频| 成人午夜高清在线视频| 久久久久精品国产欧美久久久| 男人舔女人的私密视频| 精品国产乱码久久久久久男人| 国产高清videossex| netflix在线观看网站| 日本成人三级电影网站| 欧美一区二区国产精品久久精品 | 嫩草影院精品99| 午夜老司机福利片| 成人亚洲精品av一区二区| 两个人看的免费小视频| 亚洲精品在线观看二区| 国产一区二区三区在线臀色熟女| 欧美人与性动交α欧美精品济南到| 日韩欧美在线乱码| 国产亚洲精品第一综合不卡| 免费看十八禁软件| 精品一区二区三区av网在线观看| 国产亚洲精品第一综合不卡| 男女之事视频高清在线观看| 亚洲精品国产一区二区精华液| 12—13女人毛片做爰片一| 中文字幕熟女人妻在线| 在线播放国产精品三级| 欧美三级亚洲精品| 欧美午夜高清在线| 制服诱惑二区| 国内精品一区二区在线观看| 亚洲国产精品成人综合色| 久久伊人香网站| 久久精品国产清高在天天线| 免费看日本二区| www.自偷自拍.com| 午夜激情福利司机影院| 悠悠久久av| 日韩大码丰满熟妇| 亚洲国产欧美网| 免费电影在线观看免费观看| 一本一本综合久久| 亚洲精品av麻豆狂野| 午夜免费成人在线视频| 18禁美女被吸乳视频| 日本一本二区三区精品| 国产爱豆传媒在线观看 | 国产片内射在线| 黄色 视频免费看| 最近最新中文字幕大全免费视频| 国产高清videossex| 国产野战对白在线观看| 亚洲aⅴ乱码一区二区在线播放 | 天天躁狠狠躁夜夜躁狠狠躁| 亚洲精华国产精华精| 国产精品亚洲美女久久久| 1024香蕉在线观看| 看免费av毛片| 亚洲狠狠婷婷综合久久图片| 人妻丰满熟妇av一区二区三区| 99在线人妻在线中文字幕| 黄色a级毛片大全视频| 国产主播在线观看一区二区| 久久午夜综合久久蜜桃| 少妇被粗大的猛进出69影院| 国内精品久久久久精免费| 日韩欧美一区二区三区在线观看| 男女那种视频在线观看| 色噜噜av男人的天堂激情| 国产区一区二久久| 此物有八面人人有两片| 亚洲成人久久爱视频| 两个人的视频大全免费| 1024手机看黄色片| 日本黄大片高清| 最近最新免费中文字幕在线| 国产乱人伦免费视频| 夜夜爽天天搞| 妹子高潮喷水视频| 一进一出抽搐动态| 亚洲电影在线观看av| 亚洲欧美日韩高清专用| 欧美+亚洲+日韩+国产| 精品久久久久久久人妻蜜臀av| 亚洲国产精品999在线| 色综合欧美亚洲国产小说| av欧美777| 老司机午夜福利在线观看视频| 久久这里只有精品中国| 在线a可以看的网站| 亚洲av电影在线进入| 啦啦啦观看免费观看视频高清| 国产在线观看jvid| 人妻久久中文字幕网| 少妇被粗大的猛进出69影院| 欧美国产日韩亚洲一区| 欧美黑人欧美精品刺激| 日本一本二区三区精品| 19禁男女啪啪无遮挡网站| 亚洲精品国产一区二区精华液| 香蕉av资源在线| 可以在线观看毛片的网站| 欧美又色又爽又黄视频| 狂野欧美激情性xxxx| www.自偷自拍.com| 99热这里只有精品一区 | 老司机在亚洲福利影院| 亚洲欧美一区二区三区黑人| 亚洲精品一卡2卡三卡4卡5卡| 岛国在线免费视频观看| 国内精品一区二区在线观看| 最近最新中文字幕大全免费视频| 日韩中文字幕欧美一区二区| 国产精品 国内视频| 精品国产超薄肉色丝袜足j| 久久精品91无色码中文字幕| 欧美3d第一页| 国产精品自产拍在线观看55亚洲| 99久久精品国产亚洲精品| 丁香六月欧美| 亚洲中文av在线| xxx96com| 亚洲精品色激情综合| 国产成人欧美在线观看| 亚洲精品中文字幕在线视频| 99久久无色码亚洲精品果冻| 日韩精品中文字幕看吧| 极品教师在线免费播放| 在线观看舔阴道视频| 亚洲av成人av| 久久国产精品人妻蜜桃| 老汉色∧v一级毛片| 99在线人妻在线中文字幕| 午夜福利成人在线免费观看| 国产亚洲精品第一综合不卡| 真人一进一出gif抽搐免费| www日本在线高清视频| 精品国产乱码久久久久久男人| 可以在线观看毛片的网站| АⅤ资源中文在线天堂| 色综合欧美亚洲国产小说| 少妇粗大呻吟视频| а√天堂www在线а√下载| 亚洲国产日韩欧美精品在线观看 | 在线免费观看的www视频| 欧美人与性动交α欧美精品济南到| 亚洲一区中文字幕在线| 亚洲精品中文字幕一二三四区| 最新美女视频免费是黄的| 搡老岳熟女国产| 两性夫妻黄色片| 变态另类成人亚洲欧美熟女| 久久中文字幕一级| 50天的宝宝边吃奶边哭怎么回事| 村上凉子中文字幕在线| 久久久国产成人精品二区| 日本免费一区二区三区高清不卡| 男人的好看免费观看在线视频 | 桃色一区二区三区在线观看| 老司机在亚洲福利影院| 亚洲熟妇熟女久久| 精品午夜福利视频在线观看一区| 国产成人系列免费观看| 女警被强在线播放| 午夜视频精品福利| 亚洲精华国产精华精| 亚洲av五月六月丁香网| 黄色视频,在线免费观看| 中文字幕av在线有码专区| 亚洲激情在线av| 精品久久久久久久久久久久久| 亚洲av成人不卡在线观看播放网| 久久久国产成人免费| 国产亚洲精品久久久久久毛片| 欧美黑人巨大hd| 婷婷亚洲欧美| 欧美性猛交╳xxx乱大交人| 国产精品久久电影中文字幕| 国产精品综合久久久久久久免费| 后天国语完整版免费观看| 久久久久国产精品人妻aⅴ院| 中文字幕熟女人妻在线| 欧美黄色淫秽网站| 日韩欧美 国产精品| 免费在线观看黄色视频的| 国产一区二区三区视频了| 国产一区二区激情短视频| 免费一级毛片在线播放高清视频| 天堂√8在线中文| 成人亚洲精品av一区二区| 午夜福利在线在线| 国产成人aa在线观看| 成人国产一区最新在线观看| 99在线视频只有这里精品首页| 老司机靠b影院| 一本久久中文字幕| 久久精品91蜜桃| 成年人黄色毛片网站| ponron亚洲| 香蕉国产在线看| 午夜视频精品福利| 久久九九热精品免费| 老司机靠b影院| 国产伦人伦偷精品视频| 欧美乱码精品一区二区三区| 天堂动漫精品| 久久午夜综合久久蜜桃| 日韩 欧美 亚洲 中文字幕| 亚洲国产中文字幕在线视频| 色在线成人网| 精品午夜福利视频在线观看一区| 人人妻人人澡欧美一区二区| av片东京热男人的天堂| 男人舔奶头视频| 法律面前人人平等表现在哪些方面| 国产三级黄色录像| 国产精品一区二区三区四区免费观看 | 国产精品av久久久久免费| 欧美性长视频在线观看| 日韩有码中文字幕| 日韩欧美国产一区二区入口| 成人18禁高潮啪啪吃奶动态图| 国产黄色小视频在线观看| 亚洲午夜精品一区,二区,三区| 美女 人体艺术 gogo| 老汉色∧v一级毛片| 欧美另类亚洲清纯唯美| 91成年电影在线观看| 看黄色毛片网站| 久久久久久久精品吃奶| 欧美又色又爽又黄视频| 狂野欧美激情性xxxx| 日韩三级视频一区二区三区| 老司机在亚洲福利影院| 毛片女人毛片| 国内揄拍国产精品人妻在线| 亚洲成av人片在线播放无| 搡老妇女老女人老熟妇| 大型黄色视频在线免费观看| 国产真实乱freesex| 亚洲片人在线观看| 女人爽到高潮嗷嗷叫在线视频| 欧美日韩乱码在线| 每晚都被弄得嗷嗷叫到高潮| 校园春色视频在线观看| www.999成人在线观看| 亚洲色图av天堂| 在线观看免费日韩欧美大片| 国产又色又爽无遮挡免费看| 9191精品国产免费久久| 日韩av在线大香蕉| 国产三级在线视频| 啦啦啦韩国在线观看视频| 香蕉丝袜av| 精品电影一区二区在线| 久久久久久亚洲精品国产蜜桃av| 黄色视频不卡| 在线观看免费视频日本深夜| 两性夫妻黄色片| www日本黄色视频网| 9191精品国产免费久久| 久9热在线精品视频|