欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

JAVA_OA(五)(番外篇):SpringMVC乱码解决(post,get)

发布时间:2025/3/21 javascript 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。