spring request注解(你会解决SpringRequestParam乱码问题吗)

spring request注解(你会解决SpringRequestParam乱码问题吗)(1)

在网上找了很多资料才找到解决的方法,通过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等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页