當前位置:
首頁 >
JAVA_OA(五)(番外篇):SpringMVC乱码解决(post,get)
發布時間:2025/3/21
38
豆豆
生活随笔
收集整理的這篇文章主要介紹了
JAVA_OA(五)(番外篇):SpringMVC乱码解决(post,get)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
get:字符轉換:?
1).xxx?=new String(name.getBytes("iso8859-1"),"utf-8");
2).web.html中<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="utf-8"/>(不建議)
post:
1).利用Spring的過濾器.
2).修改DispatcherServlet,使其具有filter的功能
public class cra {public String login(HttpServletRequest req){/** 解決編碼問題,我們分為兩種 情況* 第一種 get請求的亂碼問題* get請求的快速解決方法是:* *或者服務器的server.xml中的 *Connector標簽中添加URIEncoding="utf-8(也就是設置端口的那一個標簽). *如下 *<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="utf-8"/> * * * 但是這樣寫有個很大的麻煩,就是會導致服務器中所有的get全變utf-8,這樣可能會影響其他人的代碼,* 所以建議在并非所有的GET都需要utf-8時,還是利用=new String(name.getBytes("iso8859-1"),"utf-8")來解決比較好* * 下面是例子*/String id=req.getParameter("id");String name=req.getParameter("name");String name1="";try {name1=new String(name.getBytes("iso8859-1"),"utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}System.out.println(id);System.out.println(name);System.out.println(name1);return "Hello"; /** 第二種 post請求的亂碼問題* 這個在SpringMVC中比較簡單,只需要自動調用其過濾器就好了例子:<!-- 使用Filter解決中文亂碼問題 --><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter<!-- jar包顯示問題,運行正常 --></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>*.do</url-pattern></filter-mapping> * * * 不過,本人也聽說過一種貌似更牛逼的黑科技(下面的內容摘自nivana999的博客):因為使用spring mvc的時候,已經在web.xml中設置了servlet: <servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>* * 故而---》直接改一下DispatcherServlet這個類,* 使它具有修改編碼的功能。寫一個新的類,繼承自DispatcherServlet,* 代碼如下:package com.mocha.servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.DispatcherServlet; public class EncodingDispatcherServlet extends DispatcherServlet { private String encoding; public void init(ServletConfig config) throws ServletException { encoding = config.getInitParameter("encoding"); super.init(config); } protected void doService(HttpServletRequest request, HttpServletResponse response) throws Exception { request.setCharacterEncoding(encoding); super.doService(request, response); } } * 然后是web的配置* <servlet> <servlet-name>spring</servlet-name> <servlet-class>com.mocha.servlet.EncodingDispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </servlet><pre name="code" class="java"><span style="white-space:pre"> </span> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>* */} }《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的JAVA_OA(五)(番外篇):SpringMVC乱码解决(post,get)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA_OA(五):SpringMVC
- 下一篇: JAVA_OA(六):SpringMVC