表单form传参, POST型可以传中文, GET型传中文到后台是乱码

本文介绍了在STRUTS2框架下使用ECLIPSE环境中遇到的中文参数乱码问题及解决方案。通过调整表单提交方式为POST或修改TOMCAT和JBOSS服务器配置以支持UTF-8编码,成功解决了中文字符传输过程中的乱码问题。

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

  • 环境

 

表单
<form method="post或get" action="/test1/test/test" >
 
 <input type="text" name="file1" />
 
 <input type="submit" name="显示" />
 
</form> 

.web.xml加了中文传参过滤器
<!-- ##################### 传参 character encoding 中文  ###########--> 

  <filter>
  <filter-name>TomcatFormFilter</filter-name>
  <filter-class>filters.TomcatFormFilter_UTF8</filter-class>
 </filter>

 <filter-mapping>
  <filter-name>TomcatFormFilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping> 

页面是UTF8
<%@ page language="java" contentType="text/html; charset=UTF-8" 
STRUTS2,ECLIPSE环境也是UTF8 
TOMCAT 

 

 

 

  • 现象:
    输入框输入中文,传到ACTION是乱码

 

 

 

  • 解决法1:
    表单变为POST,不再用GET

 

 

 

  • 解决法2:
    TOMCAT改UTF-8

 

打开D:\RND\server\apache-tomcat-6.0.29\conf\server.xml
 改:  
    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" /> 

 

      JBOSS改UTF-8

 

打开D:\RND\server\jboss-5.0.0.GA\server\default\deploy\jbossweb.sar\server.xml
改:
      <!-- A HTTP/1.1 Connector on port 8080 -->
      <Connector protocol="HTTP/1.1" port="8080" address="${jboss.bind.address}"
               connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" /> 

你会发现JBOSS的配置文件和TOMCAT非常相像, 因为JBOSS的WEB访问的内核就是用得TOMCAT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值