tomcat5中文问题解决之道(收藏)
来源:互联网 发布:不出门便知天下事英语 编辑:程序博客网 时间:2024/05/29 11:13
在tomcat5中发现了以前处理tomcat4的方法不能适用于处理直接通过url提交的请求,上网找资料终于发现了最完美的解决办法,不用每个地方都转换了,而且无论get,和post都正常。写了个文档,贴出来希望跟我有同样问题的人不再像我一样痛苦一次:-)
上传文件有问题,只好直接贴了,难看点:-)
-------------------
tomcat 5中文问题
author:kiss__sky@163.com
-------------------
问题描述:
1 表单提交的数据,用request.getParameter(“xxx”)返回的字符串为乱码或者??
2 直接通过url如http://localhost/a.jsp?name=中国,这样的get请求在服务端用request. getParameter(“name”)时返回的是乱码;按tomcat4的做法设置Filter也没有用或者用request.setCharacterEncoding("GBK");也不管用
原因:
1 tomcat的j2ee实现对表单提交即post方式提示时处理参数采用缺省的iso-8859-1来处理
2 tomcat对get方式提交的请求对query-string 处理时采用了和post方法不一样的处理方式。(与tomcat4不一样,所以设置setCharacterEncoding(“gbk”))不起作用。
解决办法:
首先所有的jsp文件都加上:
<%@ page contentType="text/html;charset=gb2312"%>
1 实现一个Filter.设置处理字符集为GBK。(在tomcat的webapps/servlet-examples目录有一个完整的例子。请参考web.xml和SetCharacterEncodingFilter的配置。)
1)只要把%tomcat安装目录%/ webappsservlets-examplesWEB-INFclassesfiltersSetCharacterEncodingFilter.class文件拷到你的webapp目录/filters下,如果没有filters目录,就创建一个。
2)在你的web.xml里加入如下几行:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3)完成.
2 get方式的解决办法
1) 打开tomcat的server.xml文件,找到
URIEncoding=”GBK”
完整的应如下:
<Connector
port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="GBK"
/>
2)重启tomcat,一切OK。
执行如下jsp页页测试是否成功
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.*"%>
<% <script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script><script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- tomcat5中文问题解决之道(收藏)
- tomcat5中文问题解决之道(收藏)
- tomcat5中文问题解决之道
- tomcat5中文问题解决之道
- tomcat5中文问题解决之道
- tomcat5中文问题解决之道
- tomcat5中文问题解决之道
- Tomcat5中文问题解决之道
- Tomcat5中文问题解决之道
- Tomcat5中文问题解决之道
- Tomcat5中文问题解决之道
- Tomcat5中文问题解决之道
- Tomcat5中文问题解决之道
- TOMCAT5中文问题解决之道
- Tomcat5中文问题解决之道
- tomcat5中文问题解决之道
- tomcat5中文问题解决之道
- 【转载】tomcat5中文问题解决之道
- java.util.regex.Pattern
- 一个检查邮件地址有效性的正则表达式程序
- 毫无废话: 从0开始一点一滴用java开发自己的B/S构架--
- 毫无废话: 从0开始一点一滴用java开发自己的B/S--4.1
- 毫无废话: 从0开始一点一滴用java开发自己的B/S---5.1
- tomcat5中文问题解决之道(收藏)
- Apache+MySQL+PHP安装指南
- 也谈session在JSP和Servlet中不一致问题
- JSP连接Oralce 9i(thin模式)
- java文件对象操作
- Apache xml-rpc入门
- JAVA生成JPG缩略图
- Resin3.0.6与IIS5.1整合
- Introducing to Spring Framework