jbuilder下运行tomcat5中文乱码过滤问题解决

原创 2007年09月29日 11:12:00
大家调试的时用的是jbuilder下的tomcat,jbuider 每次运行程序都自动生成server8080.xml,所以中文过滤器每次加载的时候都会出现有些中文字符不能过滤的问题.比如说:

1 表单提交的数据,用request.getParameter(“xxx”)返回的字符串为乱码或者??
2 直接通过url如http://localhost/a.jsp?name=中国,这样的get请求在服务端用request[/url]. getParameter(“name”)时返回的是乱码;按tomcat4的做法设置Filter也没有用或者用request.setCharacterEncoding("GBK");也不管用.

原因:
1 tomcat的j2ee实现对表单提交即post方式提示时处理参数采用缺省的iso-8859-1来处理
2 tomcat对get方式提交的请求对query-string 处理时采用了和post方法不一样的处理方式。(与tomcat4不一样,所以设置setCharacterEncoding(“gbk”))不起作用。


解决方法:用jdls公司的过滤器(),配置web.xml
HTML 代码:
<filter> <filter-name>EncodingFilter</filter-name> <filter-class>cn.com.jdls.foundation.web.EncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> <filter-mapping> <filter-name>EncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>EncodingFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping>

但这样只能过滤通过do和jsp传来的中文.如果要过滤由<a href="">
或window.location.href(url); 传来的参数必须加上下面的过滤参数.

在web.xml加入
HTML 代码:
<filter-mapping> <filter-name>EncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

然后, 在你的工程下的/Tomcat/conf/server8080.xml(如果没有运行一下工程)下,去掉第二句话,

这句话就是那个以
HTML 代码:
<!--???-->
扩起来的注释.我们可能不在意这句话,然而就是这句话决定你的过滤器是否起作用!删除这句注释,
然后在
HTML 代码:
<Connector ... URIEncoding=/"GBK/">
就可以了.以后运行程序就不会动态生成 server8080.xml

执行如下jsp页页测试是否成功

HTML 代码:
<%@ page contentType=/"text/html;charset=gb2312/"%> <%@ page import=/"java.util.*/"%> <% String q=request.getParameter(/"q/"); q = q == null? /"没有值/" : q; %> <HTML> <HEAD> <TITLE>新闻列表显示</TITLE> <META http-equiv=Content-Type content=/"text/html; charset=gb2312/"> <META http-equiv=pragma content=no-cache> <body>你提交了:<%=q%> <form action=/"tcnchar.jsp/" method=/"post/"> 输入中文:<input type=/"text/" name=/"q/"><input type=/"submit/" value=/"确定/"> <a href=/"tcnchar.jsp?q=中国/">通过get方式提交</a> </form> </BODY> </HTML>
测试结果如果你输入文本框或者点超链都会显示:你提交了”中国”,说明成功!!!!!
如果部署项目时,使用的是独立的tomcat,则只需tomcat/conf/server.xml中增加URIEncoding="GBK". 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Jsp前台提交中文乱码问题解决方案(Tomcat项目运行时,加载jar包或类文件的顺序)

众所周知,在我们javaWeb下项目中常常会实现前后台交互,而前后台交互最常见的问题就是中文乱码问题,下面我总结出四种中文乱码解决方案:前提:前台页面必须以post方式提交中文 —因为post会设置h...

Tomcat服务器记录日志(Logger)出现中文乱码问题解决

开始接触服务器AliyunECS配置有段时间了,Logger输出中文乱码问题困扰着,在开发环境下不存在这个问题。 在网上搜索过解决方法,方法各种各样。最终推荐一种,笔记如下: 打开Tomcat安装目录...

【安卓笔记】android客户端向tomcat服务器发送请求中文乱码问题解决

android客户端请求服务端的url地址中含有中文时将会产生中文乱码问题。 产生乱码的原因有主要以下几个方面: -------------------------------------...

CentOS5中文乱码问题解决

在使用CentOS系统时,安装的时候可能你会遇到英文的CentOS系统,在这中情况下安装CentOS系统时是默认安装(即英文)。安装完毕后,出现 的各种中文乱码。那么,我们如何解决这种问题呢。 ...

Android 向Tomcat服务器提交中文乱码问题解决

我们知道Android向服务器提交数据有很多方式,本文作者常用的是 模拟Http协议使用get或者post方式来提交。这时候如果提交的数据为中文,势必牵扯到乱码问题。 网上也有很多种...

JSP中文乱码问题解决

  • 2010-06-12 10:26
  • 278KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)