springmvc post、get中文乱码

本文介绍了解决Web应用程序中中文乱码的方法,包括设置JSP页面编码为UTF-8、确保表单提交方式为POST、配置Spring的CharacterEncodingFilter过滤器、调整Tomcat的URI编码以及设置数据库连接时的字符集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、post方式提交中文乱码处理

1、jsp页面编码设为"UTF-8"

<%@ page language="java" import="java.util.*" pageEncodint="UTF-8"%>

2、form表单提交方式必须为post,get方式提交spring编码过滤器不起效

<form action="./quryPro.do" name="proForm" method="post">

3、修改web.xml,增加编码过滤器

[java]  view plain  copy
  1. <filter>  
  2.   <filter-name>encodingFilter</filter-name>  
  3.   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  4.   <init-param>  
  5.     <param-name>encoding</param-name>  
  6.     <param-value>UTF-8</param-value>  
  7.   </init-param>  
  8.   <init-param>  
  9.     <param-name>forceEncoding</param-name>  
  10.     <param-value>true</param-value>  
  11.   </init-param>  
  12. </filter>  
  13. <filter-mapping>  
  14.   <filter-name>encodingFilter</filter-name>  
  15.   <url-pattern>/*</url-pattern>  
  16. </filter-mapping> 

两个参数的作用

1>、encoding

用来指定一个具体的字符集

2>、forceEncoding

Spring里的字符过滤器CharacterEncodingFilter是针对请求的,forceEncoding=true意思是指无论客户端请求是否包含了编码,都用过滤器里面的编码来解析请求

2、get方式提交中文乱码处理

上面的过滤器,过滤了所有请求。但还是有问题,最后发现是表单的问题,在表单中method默认是get,而以上过滤器只对post有效果,如果是get,需要修改 Tomcat根式目录的 conf/server.xml文件中,找<Connector port="8080" />,在里面加<Connector port="8080" uRIEncoding="utf-8" />

3、连接数据库时的中文设置

url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8";



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值