springmvc乱码处理

一、乱码处理

Servlet中,两种请求方式乱码解决方案回顾:
(1)如果请求方式为POST提交,必然会出现乱码,解决方式是在任何获取参数的代码之前,添加如下代码:
request.setCharacterEncoding(“utf-8”);
(2)如果请求方式为GET提交,tomcat8及之后的版本已经解决了中文参数乱码的问题,不需要处理,tomcat7及之前的版本只需要在 [tomcat]/conf/server.xml中添加如下配置也可以解决乱码问题。

所以需要在web.xml中加入过滤器配置,内容如下
springmvc也提供了解决请求参数乱码的方案,就是在web.xml中的web-app标签加入如下代码,可以解决POST提交参数乱码:

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

二、案例

1、添加form.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>获取请求参数</title>
</head>
<body>
<h1>GET提交</h1>
<form action="http://localhost:8080//day11_SpringMVC/testLMParam" method="GET">
	用户名: <input type="text" name="user"/>
	爱好: <input type="checkbox" name="like" value="篮球"/>篮球
		<input type="checkbox" name="like" value="足球"/>足球
		<input type="checkbox" name="like" value="排球"/>排球
	<input type="submit" value="提交"/>
</form>

<h1>POST提交</h1>
<form action="http://localhost:8080//day11_SpringMVC/testLMParam" method="POST">
	用户名: <input type="text" name="user"/>
	爱好: <input type="checkbox" name="like" value="篮球"/>篮球
		<input type="checkbox" name="like" value="足球"/>足球
		<input type="checkbox" name="like" value="排球"/>排球
	<input type="submit" value="提交"/>
</form>
</body>
</html>

2、在ParamController.java中添加方法

/*
    * 4、接收form.html提交的数据,检验是否乱码
    * 测试过程:
    * (1)浏览器访问form.html表单
    * (2)手动填写表单,点击提交,表单会自动将收集的参数以k-v的格式存储在请求信息中
    * GET提交:url?name=xxx&age=xxx
    * POST提交:存储在请求实体中
    * (3)提交的位置:
    * http://localhost:8080//day11_SpringMVC/testLMParam
    * 可调用此类中的testLMParam
    * (4)获取请求中的参数,查看是否会乱码
    * 经过测试:GET提交不会乱码,POST会乱码
    * */
    @RequestMapping("/testLMParam")
    public String testLMParam(String user,String[] like){
        System.out.println("开始测试是否乱码");
        System.out.println(user);
        System.out.println(Arrays.toString(like));
        return "home";
    }

3、解决乱码问题,需要在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>UTF8</param-value>
	</init-param>
</filter>
<filter-mapping>
	<filter-name>encodingFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

4、测试结果

在这里插入图片描述

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值