最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

servlet 解決亂碼問題

 更新時(shí)間:2015年04月08日 22:48:39   投稿:mdxy-dxy  
這篇文章主要介紹了servlet 解決亂碼問題 ,需要的朋友可以參考下

  對(duì)于servlet大家應(yīng)該都很熟悉了,今天再復(fù)習(xí)一下,如果有哪里寫的不好或不對(duì)的地點(diǎn)希望廣大的網(wǎng)友批評(píng)指正。今天只討論get和post兩w種方式,他們之間有很多的不同點(diǎn),所以解決編碼的方式也會(huì)不一樣,post的亂碼問題好解決一點(diǎn),下面先簡單說下http協(xié)議,以便我能更好的記憶原理性的東西和他們之間的不同點(diǎn)。

get方式和post方式都是基于http協(xié)議的,它的目的是為了提供一種發(fā)布和接收html頁面的方法,由客戶端發(fā)起請(qǐng)求,服務(wù)器端進(jìn)行響應(yīng)。

  一個(gè)完整的請(qǐng)求消息包括:一個(gè)請(qǐng)求行,若干消息頭和請(qǐng)求實(shí)體內(nèi)容

    請(qǐng)求行包括請(qǐng)求方式(get或post), 資源路徑(要訪問的地址),http版本號(hào)(http1.1)

    若干消息頭(比如包涵了瀏覽器的內(nèi)核信息(user-agent),打開它的父頁面是誰(refer)等

    在請(qǐng)求實(shí)體內(nèi)容和消息頭中有一行空行,將消息頭和請(qǐng)求實(shí)體內(nèi)容分開,實(shí)體內(nèi)容有用戶提交的

  一個(gè)完整的響應(yīng)消息包括:狀態(tài)行,一個(gè)或多個(gè)應(yīng)答頭,一個(gè)空行,響應(yīng)實(shí)體

    狀態(tài)行:包括http協(xié)議版本號(hào),狀態(tài)碼和原因敘述

    常見狀態(tài)碼:200 正常

          404:請(qǐng)求資源不存在

          500:服務(wù)器內(nèi)部錯(cuò)誤    

    粗略說完http后可以介紹get和post方式的不同之處了

get方式:

  get方式是將提交的內(nèi)容放到url的后面,長度有所限制,post和get都是基于http協(xié)議的,get方式是放到了請(qǐng)求行里,因?yàn)樗膮?shù)是在url中的,而post方式是放到請(qǐng)求實(shí)體內(nèi)容里的,post方式相對(duì)安全,瀏覽器不保留緩存信息,而get方式會(huì)wk保留緩存,可以從瀏覽器的歷史記錄里查看提交的內(nèi)容,并且get方式長度有限制,而post沒有。

  正是因?yàn)間et方式和post方式提交數(shù)據(jù)時(shí)在http協(xié)議的位置不同,解決他們的編碼方式也會(huì)不同

  post方式亂碼問題解決:

    在servlet的service方法(doGet或doPost方法也可以)中,將request的編碼設(shè)置為UTF-8

  

req.setCharacterEncoding("UTF-8");

  這樣,request的編碼就沒有問題了,然后將response的編碼也設(shè)置為UTF-8;

resp.setCharacterEncoding("UTF-8");

  這樣,response的編碼也沒有問題了,但是這樣寫了以后到瀏覽器還是可能會(huì)出問題的,因?yàn)闉g覽器不知道你的編碼格式是什么,所以就按著瀏覽器的默認(rèn)格式來顯示,所以要把瀏覽器進(jìn)行顯示時(shí)的編碼方式也要設(shè)置為UTF-8,語句如下:

resp.setContextType("text/html;charset=utf-8");

  同時(shí)還要保證你的開發(fā)工具編碼和項(xiàng)目的編碼一致,不然可能會(huì)出現(xiàn)亂碼問題,這里都是以UTF-8為例

  get方式亂碼問題解決:

    get方式除了上面的操作外還要在tomcat的conf目錄下的server.xml配置文件里面加上一句話,找到下面這句話,

   

 <Connector port="8080" protocol="HTTP/1.1"
        connectionTimeout="20000"
        redirectPort="8443" />

  修改后為

 <Connector port="8080" protocol="HTTP/1.1"
        connectionTimeout="20000"
        redirectPort="8443" userBodyEncodingForURI="true" />

  這種改法比較靈活,讓URL的編碼格式跟著頁面的編碼格式一樣,也可以設(shè)置為固定的某一種格式,如

 <Connector port="8080" protocol="HTTP/1.1"
        connectionTimeout="20000"
        redirectPort="8443" EncodingForURI="UTF-8" />

  這樣就基本上沒有什么問題了,如果還有問題,就得用String里的方法,將頁面的亂碼改為你想要的格式了,不過,如果上面的方式都對(duì)了,這種方式就不怎么會(huì)用到了。

  除了上面的操作外,也要把數(shù)據(jù)庫的編碼格式設(shè)為與項(xiàng)目的一樣才行,這里就是改為UTF-8了,因?yàn)闀r(shí)間有限,所以寫的比較粗糙,還有很多東西也都給省略了,不過解決servlet的編碼方式應(yīng)該是夠了的。

  調(diào)用時(shí)可以用js,如:

function ceshi() {
	window.location.href = "UserServlet?uname=zhangsan&realname=" + encodeURIComponent("大家好");
}

  這樣就將大家好就不會(huì)再顯示漢字到地址欄了(把這句話綁定到提交按扭上),就可以提交到相應(yīng)的servlet了。這種解決亂碼的方式同樣也適用于jsp

  對(duì)了,還得再說點(diǎn)跟servlet有關(guān)系的,那就是forward和redirect,forward只能是在當(dāng)前項(xiàng)目進(jìn)行跳轉(zhuǎn),redirect可以跳轉(zhuǎn)到外面去,當(dāng)然,他們還有別的區(qū)別,這里我只說一點(diǎn)我覺得重要的東西,那就是無論使用哪一種,寫完了forward和redirect后,一定要加上return,如果不加,后面的語句還是會(huì)被執(zhí)行的,加上return后,后面的語句就會(huì)報(bào)錯(cuò),這樣就阻止了同一個(gè)頁面進(jìn)行了多次跳轉(zhuǎn)。不喜歡的網(wǎng)友誤噴,謝謝合作,感謝幫我挑錯(cuò)的網(wǎng)友,因?yàn)檫@樣我才會(huì)不斷進(jìn)步,真心感謝你們

相關(guān)文章

  • Java?Autowired注解深入分析

    Java?Autowired注解深入分析

    @Autowired注解是Spring中非常重要且常見的,接下來就簡要的介紹一下它的用法。@Autowired默認(rèn)是通過set方法,按照類型自動(dòng)裝配JavaBean,set方法可省略不寫,它主要是修飾在成員變量上
    2023-01-01
  • Spring Boot 中的 CommandLineRunner 原理及使用示例解析

    Spring Boot 中的 CommandLineRunner 原理及使用示例

    CommandLineRunner 是 Spring Boot 提供的一個(gè)非常有用的接口,可以幫助你在應(yīng)用程序啟動(dòng)后執(zhí)行初始化任務(wù),本文通過多個(gè)示例詳細(xì)介紹了如何在實(shí)際項(xiàng)目中使用 CommandLineRunner,感興趣的朋友一起看看吧
    2025-04-04
  • Java Random.nextInt()方法原理解析

    Java Random.nextInt()方法原理解析

    這篇文章主要介紹了Java Random.nextInt()方法原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java2 JDK安裝和配置教程

    Java2 JDK安裝和配置教程

    這篇文章主要為大家詳細(xì)介紹了Java2 JDK安裝和配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • JVM的垃圾回收機(jī)制詳解和調(diào)優(yōu)

    JVM的垃圾回收機(jī)制詳解和調(diào)優(yōu)

    JVM的垃圾回收機(jī)制詳解和調(diào)優(yōu)...
    2006-12-12
  • ?基于Java解決華為機(jī)試之字符串合并處理實(shí)操

    ?基于Java解決華為機(jī)試之字符串合并處理實(shí)操

    這篇文章主要介紹了基于Java解決華為機(jī)試之字符串合并處理,文章以實(shí)操展開主題內(nèi)容,具有一的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)工作中的你有所幫助
    2022-02-02
  • SpringBoot整合SpringSecurityOauth2實(shí)現(xiàn)鑒權(quán)動(dòng)態(tài)權(quán)限問題

    SpringBoot整合SpringSecurityOauth2實(shí)現(xiàn)鑒權(quán)動(dòng)態(tài)權(quán)限問題

    這篇文章主要介紹了SpringBoot整合SpringSecurityOauth2實(shí)現(xiàn)鑒權(quán)-動(dòng)態(tài)權(quán)限,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • IDEA配置tomcat的方法、IDEA配置tomcat運(yùn)行web項(xiàng)目詳解

    IDEA配置tomcat的方法、IDEA配置tomcat運(yùn)行web項(xiàng)目詳解

    這篇文章主要介紹了IDEA配置tomcat的方法、IDEA配置tomcat運(yùn)行web項(xiàng)目詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java8接口默認(rèn)靜態(tài)方法及重復(fù)注解原理解析

    Java8接口默認(rèn)靜態(tài)方法及重復(fù)注解原理解析

    這篇文章主要介紹了Java8接口默認(rèn)靜態(tài)方法及重復(fù)注解原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Java?stream?sorted使用?Comparator?進(jìn)行多字段排序的方法

    Java?stream?sorted使用?Comparator?進(jìn)行多字段排序的方法

    這篇文章主要介紹了Java?stream?sorted使用?Comparator?進(jìn)行多字段排序,主要講解使用Java?Stream流排序器Comparator對(duì)List集合進(jìn)行多字段排序的方法,包括復(fù)雜實(shí)體對(duì)象多字段升降序排序方法,需要的朋友可以參考下
    2023-03-03

最新評(píng)論

巴马| 惠东县| 峨眉山市| 隆子县| 晋中市| 理塘县| 道孚县| 福泉市| 措美县| 疏勒县| 班玛县| 皋兰县| 罗甸县| 连州市| 蓝山县| 万载县| 蛟河市| 闻喜县| 房产| 罗平县| 道孚县| 砀山县| 伊通| 西畴县| 通山县| 阜城县| 昌宁县| 厦门市| 临洮县| 泸定县| 观塘区| 广昌县| 芦山县| 神池县| 海宁市| 西宁市| 乌鲁木齐市| 公主岭市| 察隅县| 通州市| 荣昌县|