概述
在web项目中处理Post提交乱码问题我们有很多方便的解决方案,但是get乱码问题的解决在多个get提交时较为繁琐,需要每个都用request获得再重新编码,本文将介绍一种一步解决所有get方式提交乱码问题的方案。
方案
打开Servers下的server.xml
修改查询到8080的那一行
extra
post乱码解决:
1.设置filter
<!-- 处理Post提交乱码问题 -->
<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>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
2.自定义参数绑定-日期转换器
创建一个类继承Converter类
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7VV7XRpY-1587653792604)(/images/Converter类.png)]
/**
* 日期转换器:
* S:source 要转换的原类型
* T:target 要转换成的数据类型
* @author JY
*
*/
public class DateConvert implements Converter<String, Date> {
@Override
public Date convert(String source) {
Date result = null;
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
result = sdf.parse(source);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
配置springmvc.xml
<!-- 使用自定义转换器 -->
<mvc:annotation-driven conversion-service="MyConvert" />
<!-- 定义转换器 -->
<bean id="MyConvert" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.itheima.springmvc.utils.DateConvert" />
</set>
</property>
</bean>
get乱码解决:
//get乱码方式解决
//先用iso8859-1编码,string.getbytes(编码),再用utf-8解码new string(解码)
/* String username = request.getParameter("username");
username = new String(username.getBytes("iso8859-1"),"utf-8");*/
结语
我单方面宣布Teacher马就是最强饭友,横扫es
另外提醒:
请今天要观看比赛的观众准备好:🍚☕🍸🍷以及🍽️🍴🥄🥢,最好在旁边还有🎻🎹🎶🎺演奏,身穿🎩👔👖👞或👒🎀👗👠,这是一场空前绝后的电竞盛宴,观看者要穿着正式,为避免意外,请消化能力不好的观众准备好健胃消食片,谢谢合作(老上流了)
️🍴🥄🥢,最好在旁边还有🎻🎹🎶🎺演奏,身穿🎩👔👖👞或👒🎀👗👠,这是一场空前绝后的电竞盛宴,观看者要穿着正式,为避免意外,请消化能力不好的观众准备好健胃消食片,谢谢合作(老上流了)