# 中文问题
在Spring MVC中处理中文问题和Filter处理中文问题是一样的手段
## 步骤 1 : 先运行,看到效果,再学习
先将完整的项目(向老师要相关资料),配置运行起来,确认可用之后,再学习做了哪些步骤以达到这样的效果。
## 步骤 2 : 模仿和排错
在确保可运行项目能够正确无误地运行之后,再严格照着教程的步骤,对代码模仿一遍。
模仿过程难免代码有出入,导致无法得到期望的运行结果,此时此刻通过比较**正确答案**( 可运行项目 ) 和自己的代码,来定位问题所在。
采用这种方式,**学习有效果,排错有效率**,可以较为明显地提升学习速度,跨过学习路上的各个槛。
## 步骤 3 : 效果
访问地址提交中文
[http://127.0.0.1:8080/springmvc/addProduct.jsp](http://127.0.0.1:8080/springmvc/addProduct.jsp)
提交数据
![](https://box.kancloud.cn/7147345af864ed2ee0102adf86db531b_774x148.png)
## 步骤 4 : Filter
修改web.xml
~~~
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>springmvc</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<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>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
~~~
## 步骤 5 : addProduct.jsp
为form 设置method="post"
~~~
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="addProduct" method="post">
产品名称:<input type="text" name="name" value=""><br>
产品价格:<input type="text" name="price" value=""><br>
<input type="submit" value="增加商品">
</form>
</body>
</html>
~~~
> 某些浏览器,会对get方式提交的数据进行二次编码,导致服务端取出数据无法正确解码,所以尽量使用post方式,确保中文可以正常处理。
## 步骤 6 : 测试
重启tomcat,访问页面
[http://127.0.0.1:8080/springmvc/addProduct.jsp](http://127.0.0.1:8080/springmvc/addProduct.jsp)
提交数据
![](https://box.kancloud.cn/7147345af864ed2ee0102adf86db531b_774x148.png)
注: SpringMVC会自动检测类发生的变化,但是web.xml做的改动还是必须重启tomcat才可以看到效果
## 常见问题
1. 对于filter标签,和CharacterEncodingFilter不懂其作用
> 相对于自己手动实现Filter,springMVC是帮我们完成了实现Filter的相关方法:
> HttpServletRequest request = (HttpServletRequest) req;
> request.setCharacterEncoding("UTF-8");
> 我们只需要进行xml配置即可
- Maven
- 介绍
- 下载与介绍
- 仓库
- Eclipse中的Mavenu创建
- eclipse下创建maven风格的Java项目
- 添加jar包
- 创建Maven风格的Java web项目
- 创建SSM项目
- 导入Maven项目
- Mybatis
- 框架介绍
- Mybatis 简单实现
- 使用Mybatis进行CRUD操作
- 优化配置文件
- 表字段名和实体类属性名不同的解决方法
- 一对一关联
- 一对多关联
- Spring
- 注入对象
- 注解方式IOC/DI
- AOP
- 注解方式AOP
- 注解方式测试
- Spring MVC
- Hello,SpringMVC
- 视图定位
- 注解方式
- 接收表单数据
- 客户端跳转
- Session
- 中文问题
- 上传文件
- SSM整合
- 整合步骤
- 分页
- PageHelper
- 连接池
- CRUD
- 事务管理
- JSON