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

java request.getParameter中文亂碼解決方法

 更新時間:2020年02月01日 15:16:17   投稿:mdxy-dxy  
今天跟大家分享幾個解決java Web開發(fā)中,request.getParameter()獲取URL中文參數亂碼的解決辦法,需要的朋友可以參考下

今天瀏覽項目時候,遇到一個問題,頁面用${requestScope.參數名 }獲取的值是亂碼,然后搜了一下,最后說是編碼的問題,附上查找的結果:

  

在Java 開發(fā)中,如果框架搭建的不完善或者初學者在學習過程中,出現(xiàn)中文亂碼是經常的事兒(哈。誰讓發(fā)明java語言的不是中國人呢)

今天跟大家分享幾個解決java Web開發(fā)中,request.getParameter()獲取URL中文參數亂碼的解決辦法

解決問題,先要研究問題,URL傳中文參數為什么會出現(xiàn)亂碼?

原因:Http請求傳輸時將url以ISO-8859-1編碼,服務器收到字節(jié)流后默認會以ISO-8859-1編碼來解碼成字符流(造成中文亂碼)

解決辦法:我們需要把request.getParameter(“參數名”)獲取到的字符串先用ISO-8859-1編碼成字節(jié)流,然后再將其用utf-8解碼成字符流

代碼:

String str = new String(request.getParameter("參數名").getBytes("iso-8859-1"), "utf-8");

這是通過轉碼的方式處理亂碼問題,我們也可以通過Tomcat配置文件,設置URL編碼集(URIEncoding)設置編碼,這種方法也是一勞永逸的,

修改Tomcat/conf 目錄下 server.xml

<Connector port="8080" protocol="HTTP/1.1" 
  connectionTimeout="20000" 
  redirectPort="8444" 
  useBodyEncodingForURI="true" URIEncoding="UTF-8"/>

重點在 userBodyEncodingForURI 和 URIEncoding 這兩個屬性

下面來解釋一下這兩個屬性的意義

useBodyEncodingForURI參數表示是否用request.setCharacterEncoding參數對URL提交的數據和表單中GET方式提交的數據進行重新編碼,在默認情況下,該參數為false。
URIEncoding參數指定對所有GET方式請求進行統(tǒng)一的重新編碼(解碼)的編碼。

URIEncoding和useBodyEncodingForURI區(qū)別是

URIEncoding是對所有GET方式的請求的數據進行統(tǒng)一的重新編碼, 而useBodyEncodingForURI則是根據響應該請求的頁面的request.setCharacterEncoding參數對數據進行的重新編碼,不同的頁面可以有不同的重新編碼的編碼

還有一種方法,通過重寫getParameter方法,設置解碼/方式來解決亂碼問題,請參照:Java防止xss攻擊 修改。

相關文章

  • SpringBoot+Resilience4j實現(xiàn)接口限流的示例代碼

    SpringBoot+Resilience4j實現(xiàn)接口限流的示例代碼

    Resilience4j 是一個用于實現(xiàn)熔斷、限流、重試等功能的輕量級庫,本文主要介紹了SpringBoot+Resilience4j實現(xiàn)接口限流的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-12-12
  • Java 實現(xiàn)簡易教務管理系統(tǒng)的代碼

    Java 實現(xiàn)簡易教務管理系統(tǒng)的代碼

    這篇文章主要介紹了Java 實現(xiàn)簡易教務管理系統(tǒng)的代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 淺談HashMap中7種遍歷方式的性能分析

    淺談HashMap中7種遍歷方式的性能分析

    本文先從HashMap的遍歷方法講起,然后再從性能、原理以及安全性等方面,來分析HashMap各種遍歷方式的優(yōu)勢與不足
    2021-06-06
  • java.lang.ExceptionInInitializerError初始化程序中的異常錯誤的解決

    java.lang.ExceptionInInitializerError初始化程序中的異常錯誤的解決

    java.lang.ExceptionInInitializerError?異常在?Java?中表示一個錯誤,該錯誤發(fā)生在嘗試初始化一個類的靜態(tài)變量、靜態(tài)代碼塊或枚舉常量時,本文就來介紹并解決一下,感興趣的可以了解一下
    2024-05-05
  • Spring?Boot在Web應用中基于JdbcRealm安全驗證過程

    Spring?Boot在Web應用中基于JdbcRealm安全驗證過程

    這篇文章主要為大家介紹了Spring?Boot在Web應用中基于JdbcRealm安全驗證過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>
    2023-02-02
  • SpringBoot與SpringCloud的版本對應關系解讀

    SpringBoot與SpringCloud的版本對應關系解讀

    本文介紹了SpringBoot與SpringCloud的版本對應關系,提供了一個官方的版本對應表,并給出了個人的一些經驗總結
    2024-12-12
  • 解讀Spring MVC的工作流程

    解讀Spring MVC的工作流程

    SpringMVC的工作流程是基于模型-視圖-控制器(MVC)設計模式的一個典型實現(xiàn),主要包括用戶發(fā)送請求到前端控制器(DispatcherServlet)、前端控制器轉發(fā)請求給處理器映射器(HandlerMapping)
    2025-01-01
  • 解決

    解決"XML Parser Error on line 1: 前言中不允許有內容"錯誤

    解決用windows自帶的記事編輯xml文件后出現(xiàn) "XML Parser Error on line 1: 前言中不允許有內容。"的錯誤
    2018-02-02
  • SpringBoot集成SwaggerUi以及啟動時遇到的錯誤

    SpringBoot集成SwaggerUi以及啟動時遇到的錯誤

    這篇文章主要介紹了SpringBoot集成SwaggerUi以及啟動時遇到的錯誤,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • SpringBoot集成Redis之配置、序列化與持久化方式

    SpringBoot集成Redis之配置、序列化與持久化方式

    本文介紹了Redis的基本概念、常用數據類型及操作、SpringBoot整合Redis的方法、高級特性與安全性、性能優(yōu)化、測試與部署、數據一致性及版本更新等內容,通過本文的學習,讀者可以掌握Redis的使用方法,并在實際項目中發(fā)揮其優(yōu)勢
    2024-11-11

最新評論

汾阳市| 龙川县| 龙海市| 金堂县| 城口县| 普定县| 武邑县| 马龙县| 专栏| 绥中县| 民权县| 安化县| 普格县| 泰和县| 阳曲县| 施甸县| 宁海县| 鄂尔多斯市| 大英县| 兖州市| 中江县| 铅山县| 茶陵县| 寻乌县| 双鸭山市| 博客| 黔西| 正宁县| 错那县| 三门县| 清河县| 武宣县| 全南县| 红原县| 榆林市| 阜新市| 收藏| 淮南市| 韶关市| 灵丘县| 漳平市|