当前位置:首页 » 文件管理 » springmvc上传乱码

springmvc上传乱码

发布时间: 2022-09-27 04:53:49

A. springmvc参数传递的几种乱码情况

@RequestParam 或者@PathVariable 等从URL或者Form Data 获取参数数据。

当其中有中文的时候,会发生了乱码。
1.方法一:修改Tomcat的server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

添加URIEncoding="utf-8"

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>
2.方法二:手动更改
String name = new String(name.getBytes("ISO-8859-1"),"UTF-8");

其次POST方法

方法一:使用Spring的字符过滤器
配置在web.xml中:
<filter>
<filter-name>encoding</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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
方法二:手动更改

B. springmvc js ajax请求 中文乱码问题

初略的看了一下你的问题,大概明白了,出现乱码的原因大概是你的服务器编码问题,tomcat的默认编码是ISO-8859-1这种编码,所以如果你需要更改,tomcat/conf/server.xml中找到 Connector 在后面加上 URIEncoding="UTF-8" 即可,如果不更改的话,你就得在action中,也就是接受端用ISO-8859-1解码回来,如new String(str.getBytes("ISO-8859-1"),"UTF-8");如果用了拦截器的话,就在拦截器中统一解码好啦。你可以试试!希望能帮到你哦!

C. spring mvc用注解方式配置控制器,怎么出现乱码

1:表单提交controller获得中文参数后乱码解决方案
注意: jsp页面编码设置为UTF-8
form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果

[html] view plain
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
[html] view plain
<form action="${ctx}/user/addUser" name="userForm" method="post">

D. spring MVC接收中文乱码问题

1:表单提交controller获得中文参数后乱码解决方案
注意:jsp页面编码设置为UTF-8
form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
<formaction="${ctx}/user/addUser"name="userForm"method="post">
修改web.xml,增加编码过滤器,如下(注意,需要设置forceEncoding参数值为true)
<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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

2:表单提交controller获得中文参数后正常显示控制台,然后保存数据库出现乱码
注意:数据库编码是否支持中文
数据库表和表字段是否正确

在配置连接数据库的参数设置修改:
<propertyname="url"value="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8"></property>第一种情况:
jsp页面中文输入,到controller乱码,这时候需要设置的是在web.xml文件中添加一个编码的过滤器(filter)将编码统一为UTF-8,代码如下:
Web.xml配置文件:
view
sourceprint?
01.<filter>
02.<filter-name>CharacterEncodingFilter</filter-name>
03.<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
04.<init-param>
05.<param-name>encoding</param-name>
06.<param-value>utf-8</param-value>
07.</init-param>
08.</filter>
09.<filter-mapping>
10.<filter-name>CharacterEncodingFilter</filter-name>
11.<url-pattern>/*</url-pattern>
12.</filter-mapping>


这里需要注意的是,最好把这段代码放在web.xml中开头的位置,因为拦截有顺序,如果放在后面的话容易拦截不到。
第二种情况:
数据库中文数据,jsp页面显示乱码(不是严格意义上的乱码,而是以问号的形式呈现)
由于我们前后台的数据交互使用的是json数据,出现这种情况的原因我也不太清楚,之前也没遇到过,只能怪自己做过的项目太少,解决起来也不困难,只需要在转json的时候设置一下编码格式就可以了,代码如下:
view
sourceprint?
1.response.setContentType("application/json;charset=UTF-8");//防止数据传递乱码
写上这句话就不会再出现乱码了。
第三种情况:
页面中文,传递到controller也是正确的,但是保存到数据库之后就是乱码(也不是严格意义的乱码,跟上面一样全是问号)
这个问题困扰了我一段时间,开始觉得数据库的编码格式不正确,重新创建了编码格式为utf-8的数据库也还是不可以,最后觉得是jboss的问题,我们的服务器用的是jboss,上网查了资料在连接数据源的时候加上编码格式就可以了

E. springmvc redirect 传参为什么是乱码

spring redirect

用spring redirect中文会乱码:如下示例
public String redirectTest(){
redirect:/payment/alipay?body="中文";
}
浏览器会出现 body=??中文乱码

[编辑]解决方案

spring mvc 有自定义的org.springframework.ui.Model类用与封装url携带的参数具体方式如下:
public String redirectTest(Model model){
model.addAttribute("body", "中文");
return "redirect:/payment/alipay";
}

或者如下方式
public ModelAndView redirectTest(){
return new ModelAndView("redirect:/payment/alipay").addObject("body","中文");
}

以上两种方法都是将方法参数添加到spring自定义的对像中这样就不会乱码的情况了

建议将url的携带参数add到Model对象中

F. springmvc怎样控制页面传值乱码

最近在做一个项目。用的springmvc框架,遇到了页面传值乱码的问题。
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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
这种方式可以解决大部分乱码的问题,但是需要注意的是该过滤器只对post请求有用。如果form表单没写传值方式的话会默认为get。
很小的一个细节,但是很重要。

热点内容
安卓马桶盖怎么拆 发布:2024-10-09 12:19:00 浏览:218
移动硬盘文件夹消失 发布:2024-10-09 12:18:20 浏览:547
编译器会自动为它赋初值 发布:2024-10-09 11:42:28 浏览:349
算法自愈 发布:2024-10-09 11:42:27 浏览:691
小米密码输入错误多少次会被锁 发布:2024-10-09 11:41:46 浏览:578
源码种类 发布:2024-10-09 11:20:35 浏览:365
android图片xml 发布:2024-10-09 11:11:08 浏览:532
交换机基本配置与远程登录怎么做 发布:2024-10-09 11:02:06 浏览:675
服务器远程地址怎么看 发布:2024-10-09 10:43:24 浏览:140
隐身访问访客会增加吗 发布:2024-10-09 10:38:29 浏览:209