整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          你會解決Spring @RequestParam亂碼問題嗎?

          網上找了很多資料才找到解決的方法,通過URL傳遞命名參數,后臺接收的卻是亂碼解決方法如下:

          方法一:將接收的參數重新編碼

          @RequestMapping(value="/handle")

          public String handle81(@RequestParam("userName") String userName){

          userName=new String(userName.getBytes("ISO-8859-1"), "UTF-8")

          modelMap.put("userName", userName);

          return "/user/showUser";

          }

          方法二:在web.xml里面配置

          <!-- 字符過濾器 -->

          <filter>

          <filter-name>encodingFilter</filter-name>

          <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

          <init-param>

          <param-name>encoding</param-name>

          <param-value>UTF-8</param-value>

          </init-param>

          </filter>

          <filter-mapping>

          <filter-name>encodingFilter</filter-name>

          <url-pattern>/*</url-pattern>

          </filter-mapping>

          方法三:修改tomcat的server.xml(在conf文件下),找到下面代碼添加URIEncoding編碼。

          <Connector port="8080" protocol="HTTP/1.1"

          connectionTimeout="20000"

          redirectPort="8443" URIEncoding="UTF-8"/>

          最終我的解決方法時方法二和方法三同時用,沒用方法一才解決@RequestParam亂碼問題。

          另外表單提交時出現亂碼解決方法如下:

          一、首先將Eclipse文件編碼是UTF-8:Windows——Preference——General——Workspace——Text file encoding改為UTF-8.

          二、設置頁面編碼

          <%@ page language="java" import="java.util.*" pageEncoding="utf-8"
           contentType="text/html; charset=utf-8"%>
          <%
           request.setCharacterEncoding("utf-8");
          %>
          

          三、將form表單提交方式變為post方式,即添加method="post"

          四、在action類中,添加3句話

           request.setCharacterEncoding("UTF-8");
           response.setContentType("text/html;charset=utf-8");
           response.setCharacterEncoding("UTF-8");
          

          五、將接收到的數據轉碼

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

          六、post提交方式下可進行URL編碼:

          String info=java.net.URLEncoder.encode("你好嗎.jpg","utf-8");

          http://localhost:8080/webTest/index.jsp?name=<%=URLEncoder.encode("張三","UTF-8")%>

          String myname=URLDecoder.decode(name,"UTF-8");

          歡迎工作一到五年的Java工程師朋友們加入Java技術交流群:659270626

          群內提供免費的Java架構學習資料(里面有高可用、高并發、高性能及分布式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!

          DEA使用Tomcat服務器出現亂碼問題排查過程

          做一個積極的人

          編碼、改bug、提升自己

          我有一個樂園,面向編程,春暖花開!

          最近剛使用IDEA,在開發一個功能的時候,開始使用Jetty作為容器進行web項目開發,測試通過。然后想了一下線上服務器使用的容器是Tomcat,還是用Tomcat跑一下項目在測試一下,本地和服務器使用相同的容器,這個可以避免因為容器不同而導致本地測試通過,而上線又出現莫名的錯誤~! 就在我從Jetty切換到Tomcat,就發生了問題,訪問JSP頁面使用response輸出,出現了亂碼!!!

          就是下面這些東東:(這是什么啊!萌幣中。。。。。

           ????? ????? ????? ????? ????? ????? ?????
          

          這很是郁悶,本想著一次性測試通過,沒想到這里又讓我停留! 看到亂碼,心里不要害怕,不要緊張!冷靜下來進行分析,看哪里出現問題!

          開始思考:

          0:數據庫(mysql)---utf-8

          show variables like 'character%'

          character_set_client utf8
          character_set_connection utf8
          character_set_database utf8
          character_set_filesystem binary
          character_set_results utf8
          character_set_server utf8
          character_set_system utf8
          character_sets_dir /aebiz/soft/mysql/share/charsets/
          

          1:Tomcat---utf-8

          <Connector URIEncoding="utf-8" connectionTimeout="20000" port="8888" protocol="HTTP/1.1" redirectPort="8443"/>
          

          2:jsp --- utf-8

          <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
          

          3:web.xml---utf-8

          <filter>
           <filter-name>CharacterEncodingFilter</filter-name>
           <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
           <init-param>
           <param-name>encoding</param-name>
           <param-value>utf-8</param-value>
           </init-param>
          </filter>
          <filter-mapping>
           <filter-name>CharacterEncodingFilter</filter-name>
           <url-pattern>/*</url-pattern>
          </filter-mapping>
          

          4:request和response

          request.setCharacterEncoding("utf-8");
          response.setCharacterEncoding("utf-8");
          response.setContentType("text/html;charset=utf-8");
          

          5:java代碼字符串編碼

          str = tmpWriter.getByteArrayOutputStream().toString("utf-8");
          

          全部都檢查過之后,發現全部是utf-8。大寫的一個懵字,全部是utf-8怎么還是會有亂碼出現呢?

          好憂傷,難道是還有什么地方沒有設置嗎,我一想,是不是IDEA結合Tomcat編碼設置有問題導致的呢?按照這個思路發現奇跡就在前面!

          在配置Tomcat的時候添加一些參數。如下(開始是沒有設置-Dfile.encoding=UTF-8)

          -server
          -Xms1024m
          -Xmx2048m
          -XX:PermSize=512m
          -XX:MaxPermSize=512m
          -XX:+CMSClassUnloadingEnabled
          -XX:+PrintGCDetails
          -Xloggc:%M2_HOME%/gc.log
          -XX:+HeapDumpOnOutOfMemoryError
          -XX:HeapDumpPath=%M2_HOME%/java_pid.hproyuan
          

          用搜索引擎發現下面博文:Eclipse、IDEA環境下設置jvm默認編碼

          于是添加VM參數添加

          -Dfile.encoding=UTF-8

          配置參數就是

          -server
          -Xms1024m
          -Xmx2048m
          -XX:PermSize=512m
          -XX:MaxPermSize=512m
          -XX:+CMSClassUnloadingEnabled
          -XX:+PrintGCDetails
          -Xloggc:%M2_HOME%/gc.log
          -XX:+HeapDumpOnOutOfMemoryError
          -XX:HeapDumpPath=%M2_HOME%/java_pid.hproyuan
          -Dfile.encoding=UTF-8
          

          啟動發現頁面亂碼不見了,可是控制臺有出現了亂碼,亂碼真是 生生不息 啊!

          于是配置idea安裝目錄下的bin文件夾,idea.exe.vmoptions文件中

          添加一條配置信息:-Dfile.encoding=UTF-8

          so,一切都解決了!完美!


          謝謝你的閱讀,如果您覺得這篇博文對你有幫助,請點贊或者喜歡,讓更多的人看到!祝你每天開心愉快!


          不管做什么,只要堅持下去就會看到不一樣!在路上,不卑不亢!

          愿你我在人生的路上能都變成最好的自己,能夠成為一個獨擋一面的人

          ? 每天都在變得更好的阿飛云


          我們舒舒服服寫代碼的過程中會遇到很多問題[淚奔],最頭疼的不是沒思路,而是有錯不知道咋改。暈死。有時候我們在eclipse當中轉載一個項目時,會發現有好多錯誤,這些錯誤往往讓我們欲罷不能,頭疼欲裂。[泣不成聲][泣不成聲]


          這里我們就引入一個項目來解決觸發的問題:

          問題一:引入項目報錯

          • 我這里下載的是Tomcat8.5版本,對應的Server的版本為3.1(圖中的配置是我們導入的這個項目是tomcat9版本的,是需要改的)


          (上圖需要查看的compiler)


          • 然后我們進入這個web.xml文件修改對應的版本號


          • 選中項目——右鍵——Build Path——Configure build path——選擇Libraries——點擊右側 Add Library——選中Server Runtime ——next——選擇對應的服務器——Finsh


          • 最后重啟服務器

          問題二:亂碼問題報錯

          啟動項目的時候會發現出現亂碼,可是項目中又對項目編碼進行了處理,那么問題是出在了哪里呢?


          答案是:tomcat的配置文件中

          在我們eclipse里找到開啟的服務器,他下面的兩個配置文件server.xml和web.xml進行修改配置


          • 對server.xml的修改(注意:我這里的服務器端口號已經修改為5200,默認為8080


          • 對web.xml的修改


          畫出來部分是本沒有的,是我們后來需要添加進去的

          打開我們的地址,發現亂碼解決了!!!激動!!(PS:如果還是亂碼,清除緩存再刷新一下試一下喔)[看]


          以上就是對這兩個問題的解決,小編也是通過查閱資料實踐總結的,可能有些不全面歡迎各位補充~

          感謝各位的觀看[吐舌]

          解決亂碼問題原文參考轉載CSDN:

          https://blog.csdn.net/iBuDongIt/article/details/89492517


          主站蜘蛛池模板: 一区二区手机视频| 无码日韩精品一区二区免费| 日韩成人一区ftp在线播放| 亚洲午夜福利AV一区二区无码| 亚洲男人的天堂一区二区| 国产精品小黄鸭一区二区三区| 中日韩一区二区三区| 久久人妻内射无码一区三区| 中文字幕视频一区| 国产在线一区二区三区在线| 中文字幕一区二区三区四区 | 精品国产亚洲一区二区在线观看 | 中文字幕无码一区二区免费| 亚洲爆乳无码一区二区三区| 一色一伦一区二区三区| 激情爆乳一区二区三区| 日韩人妻无码一区二区三区综合部| 亚洲国产一区在线| 欧洲精品免费一区二区三区| 中日av乱码一区二区三区乱码| 人妻体体内射精一区二区| 日本精品啪啪一区二区三区| 国产精品无圣光一区二区 | 日韩AV无码一区二区三区不卡 | 亚洲一区在线免费观看| 视频一区视频二区制服丝袜| 无码人妻一区二区三区在线视频| 无码少妇一区二区浪潮免费| 在线观看午夜亚洲一区| 成人精品一区二区电影| 国产成人无码精品一区二区三区| 国产未成女一区二区三区 | 少妇精品久久久一区二区三区| 国内精品一区二区三区在线观看| 东京热人妻无码一区二区av| 成人毛片一区二区| 亚洲一区二区电影| av无码精品一区二区三区四区| 国产精品福利一区二区久久| 久久久国产一区二区三区 | 色天使亚洲综合一区二区|