免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Tomcat在處理GET和POST請求時產(chǎn)生的亂碼問題

最近一直在做關(guān)于Servlet的事情,常常出現(xiàn)亂碼,很是煩人,處理亂碼的方法有時候有效,有時候沒有效果,今天抽個時間小結(jié)一下,以防以后再出現(xiàn)這種問題。

一般的處理亂碼的方式都是用:

request.setCharacterEncoding("GBK")

但是這種方法只對POST方法提交的表單才有效果,這就是前面提到的有時候有效果,有時候沒有效果的原因。

網(wǎng)上資料顯示:自從Tomcat5.x開始,GET和POST方法提交的信息,Tomcat采用了不同的方式來處理編碼,對于POST請求,Tomcat會仍然使用request.setCharacterEncoding方法所設(shè)置的編碼來處理,如果未設(shè)置,則使用默認的iso-8859-1編碼。而GET請求則不同,Tomcat對GET請求并不會考慮使用request.setCharacterEncoding方法設(shè)置的編碼,而會永遠使用iso-8859-1編碼,因此,tomcat將會使用iso-8859-1將提交的字節(jié)轉(zhuǎn)換成字符串。

  鑒于此,提供一下三種解決方法:

      1. 將GET請求改成POST請求,然后就可以使用request.setCharacterEncoding方法設(shè)置編碼,并使用request.getParameter方法直接獲得中文請求參數(shù)了,這種方法簡單明了。

 

  2. 不用改GET請求,在Servlet中使用如下的代碼來得到中文請求參數(shù)。

 String name = new String(request.getParameter("name").getBytes("ISO-8859-1"), "GBK");

 

        3.對于GET方法,還可以通過修改Tomcat的配置來搞定。

方法如下:

在conf/server.xml里的<Connector />標(biāo)簽內(nèi)加URIEncoding="GBK",或者是UTF-8。如:

<Connector port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="GBK"/>

 

對于POST方法提交的表單,上面的方法二仍然有效,個人建議使用方法二,因為方法二的代碼是利用了Java的編碼能力,對于所有的Web服務(wù)器都會有效,而setCharacterEncoding方法是通過Web服務(wù)器支持的,并不是所有的Web服務(wù)器都會對該方法有很好的支持。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
徹底解決 Tomcat 5 下文字亂碼問題 - 天空 - BlogJava
解決tomcat因為設(shè)置編碼格式而出現(xiàn)的亂碼問題
Post請求和get請求亂碼方式解決
GET POST 區(qū)別詳解
servlet + tomcat 中文亂碼的原理和解決方法
jsp亂碼問題,jsp亂碼,servlet亂碼等等
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服