亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Tomcat中GET和POST請求時亂碼問題及解決

 更新時間:2024年06月06日 08:43:46   作者:編程工人  
這篇文章主要介紹了Tomcat中GET和POST請求時亂碼問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Tomcat中GET和POST請求時亂碼

自從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)換成字符串。

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

request.setCharacterEncoding("utf-8");

但是這種方法只對POST方法提交的表單才有效果。

提供一下四種解決方法

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

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

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

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="utf-8"/>

4.在使用get傳輸參數(shù)時,將參數(shù)中的中文轉(zhuǎn)換成url格式,也就是使用urlEncode和urlDecode來傳輸,使用這種方式就是把中文轉(zhuǎn)換成以%開頭的編碼在url中傳輸。

使用這種方法時,要注意兩點:

  • 1.前臺使用urlencode,在后臺相應(yīng)的使用urldecode。
  • 2.使用urlencode的內(nèi)容是參數(shù)內(nèi)空。千萬要注意,他是會把等于號等符號也給轉(zhuǎn)換了。所以,最好是先把參數(shù)傳換后再進行拼接。而不是把url拼接好再去轉(zhuǎn)換。

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

Tomcat無法響應(yīng)get post請求

這是一個新手很容易犯的錯誤,因為我是在B站跟著尚硅谷學(xué)的servlet,它的代碼PrintWriter對象用完之后居然沒有關(guān)閉?。。?/p>

導(dǎo)致我在idea運行的時候是可以正常運行的,然后自己導(dǎo)出war包部署項目就出現(xiàn)tomcat無法響應(yīng)請求。

doGet和doPost正確方法:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        response.setContentType("text/html");
        // Hello
        PrintWriter out = response.getWriter();
        out.println("<html><body>");
        out.println("<h1>" + message + "</h1>");
        out.println("</body></html>");
        out.flush();
        out.close();
}

一定要記得加入out.close()啊。

-----------------------------分割線--------------------

我發(fā)現(xiàn)還有一個錯誤,就是windows下的tomcat控制臺需要按回車鍵程序才能繼續(xù)執(zhí)行,解決方法:

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Tomcat使用https配置實戰(zhàn)教程

    Tomcat使用https配置實戰(zhàn)教程

    這篇文章主要介紹了Tomcat使用https配置實戰(zhàn),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 解決tomcat 靜態(tài)頁面(html)中文亂碼的解決終極篇

    解決tomcat 靜態(tài)頁面(html)中文亂碼的解決終極篇

    這篇文章主要介紹了解決tomcat 靜態(tài)頁面(html)中文亂碼的解決終極篇,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Tomcat的下載安裝與使用教程

    Tomcat的下載安裝與使用教程

    本文介紹了Tomcat的下載、安裝和使用方法,包括在本機和云服務(wù)器上部署Tomcat的過程,以及解決啟動失敗問題的方法
    2025-03-03
  • 阿里云https證書tomcat配置方法

    阿里云https證書tomcat配置方法

    這篇文章主要介紹了阿里云https證書tomcat配置方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • 詳解Tomcat多域名的配置

    詳解Tomcat多域名的配置

    本篇文章主要介紹了Tomcat多域名的配置 ,幾個項目需要發(fā)布在同一個tomcat服務(wù)器上,每個項目有不同的域名,有興趣的可以了解一下
    2017-07-07
  • Apache?Tomcat如何高并發(fā)處理請求

    Apache?Tomcat如何高并發(fā)處理請求

    本文主要介紹了Apache?Tomcat如何高并發(fā)處理請求,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • 一次因信號量引發(fā)的tomcat異常退出解決

    一次因信號量引發(fā)的tomcat異常退出解決

    這篇文章主要給大家介紹了一次因信號量引發(fā)的tomcat異常退出的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Windows下tomcat安裝圖文教程(安裝版)

    Windows下tomcat安裝圖文教程(安裝版)

    這篇文章主要介紹了Windows下tomcat安裝圖文教程(安裝版)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • 詳解Tomcat集群如何同步會話

    詳解Tomcat集群如何同步會話

    本篇文章主要介紹了Tomcat集群如何同步會話,Tocmat集群中最重要的交換信息就是會話消息,有興趣的同學(xué)可以了解一下。
    2017-01-01
  • eclipse配置Tomcat和Tomcat出現(xiàn)無效端口解決辦法

    eclipse配置Tomcat和Tomcat出現(xiàn)無效端口解決辦法

    本文主要介紹了eclipse配置Tomcat和Tomcat出現(xiàn)無效端口解決辦法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12

最新評論