2022.7.30 乱码问题(一般使用mvc自己配置的过滤器)
乱码问题(一般使用mvc自己配置的过滤器)
1、我们可以在首页编写一个提交的表单
<%
2、后台编写对应的处理类
package com.xing.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
提交到了/t请求
3、输入中文测试,发现乱码
不得不说,乱码问题是在我们开发中十分常见的问题,也是让我们程序猿比较头大的问题!
使用自己配置的过滤器
EncodingFilter
package com.xing.filter;
import javax.servlet.*;
import java.io.IOException;
/**
* @program: SpringMVC
* @Date: 2022/07/11
* @author: 16159
* @description:
* @Modified By:
**/
public class EncodingFilter implements Filter {
web.xml
还是乱码
将post改为get方法
form.jsp
<%
Encoding
package com.xing.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
乱码解决
使用springmvc自配的过滤器
以前乱码问题通过过滤器解决 , 而SpringMVC给我们提供了一个过滤器 , 可以在web.xml中配置
web.xml
最终极解决乱码方法
但是我们发现 , 有些极端情况下,这个过滤器对get的支持不好 .
处理方法 :
1、修改tomcat配置文件 :设置编码!
D:\ruanjian\environment\apache-tomcat-9.0.62\conf\server.xml
<Connector URIEncoding="utf-8" port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
2、自定义过滤器
package com.xing.filter;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Map;
/**
* 解决get和post请求 全部乱码的过滤器
*/
public class GenericEncodingFilter implements Filter {