疯狂
STANDING ON THE SHOULDERS OF GIANTS
posts - 481, comments - 486, trackbacks - 0, articles - 1
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
tomcat 编码问题
Posted on 2007-09-24 20:02
疯狂
阅读(1927)
评论(1)
编辑
收藏
所属分类:
web
当在做程序的是你也许会遇到一些很让你恼火的乱码问题,就是在你在页面传参数或向数据库里插入数据或去值的时候会出现乱码的问题,其实有很多解决办法比如:添加request.setCharacterEncoding("GB18030");或在取值的时候用String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"gbk");等 但有时仍然会遇到一些问题:
针对get方式(也就是链接的方式)
除了使用String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"gbk");最好的方式就是在tomcat的配置文件server.xml相应端口的节点里面加上URIEncoding='utf-8'.
针对post方式建议使用fliter解决,注意:
这种方式只对post方式有效果 get方式用上面的方法在tomcat里面配置
首先:定义一个类CharsetEncodingFilter让它实现javax.servlet.Filter接口
然后在配置文件web.xml里添加: (请注意,过滤是在serlvet规范2.3版中初次引入的。因此,web.xml文件必须使用DTD的2.3版本。)
<
filter
>
<
filter
-
name
>
CharsetEncodingFilter
</
filter
-
name
>
<
filter
-
class
>
com.util.filter.CharsetEncodingFilter
</
filter
-
class
>
//
class必须是完整路径
<
init
-
param
>
<
param
-
name
>
encoding
</
param
-
name
>
<
param
-
value
>
GB18030
</
param
-
value
>
</
init
-
param
>
</
filter
>
<
filter
-
mapping
>
<
filter
-
name
>
CharsetEncodingFilter
</
filter
-
name
>
<
url
-
pattern
>*
.jsp
</
url
-
pattern
>
</
filter
-
mapping
>
//
表示对所有jsp文件有效
filter元素位于部署描述符文件(web.xml)的前部,所有filter-mapping、servlet或servlet-mapping元素之前。filter元素具有如下六个可能的子元素:
icon 这是一个可选的元素,它声明IDE能够使用的一个图象文件。
filter-name 这是一个必需的元素,它给过滤器分配一个选定的名字。
display-name 这是一个可选的元素,它给出IDE使用的短名称。
description 这也是一个可选的元素,它给出IDE的信息,提供文本文档。
filter-class 这是一个必需的元素,它指定过滤器实现类的完全限定名。
init-param 这是一个可选的元素,它定义可利用FilterConfig的getInitParameter方法读
--------------------
另外其他知识:
pageEncoding是jsp文件本身的编码
contentType的charset是指服务器发送给客户端时的内容编码,服务器返回的时候会在head里面指定(可以用firebug看一下):
Content-Type:text/html;charset=GBK (如果你的jsp里面设定的Content-Type为:charset=GBK )
pageEncoding 和contentType的预设都是 ISO8859-1. 而随便设定了其中一个, 另一个就跟着一样了
评论
#
re: 用servlet filter 解决编码问题的一个小例子
回复
更多评论
2007-09-26 12:41 by
清风刀客
很受启发,不错,这个方法好等等去试试.
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
Servlet3.0引入的新特性
html字符换行的几个css
精通 JS正则表达式(转帖)
xmlrpc介绍和使用
js,JQuery获得select选中的值
发布一个struts2的插件学习版,用来支持rest风格 url的参数绑定。
spring3.1 mvc+spring jdbc实例以及源码下载
jstl和struts自定义标签的几篇文章
高性能JavaScript(来自高性能JavaScript一书)
jsessionid 问题分析
Powered by:
BlogJava
Copyright © 疯狂
日历
<
2007年9月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
公告
公众号:
QQjava交流群:
51374316
留言簿
(11)
给我留言
查看公开留言
查看私人留言
随笔分类
all 生活杂谈(16)
android(18)
apache项目(20)
chart(1)
concurrent(5)
database(70)
dwr(3)
flex(6)
hibernate(25)
java (135)
javafx(2)
javascript
java安全(8)
java性能(19)
jbpm(1)
jquery(4)
linux(17)
lucene(1)
netty(3)
nginx(1)
others(2)
questions(31)
questions_hander(28)
spring(32)
struts(9)
swing
UML(2)
unix(13)
web(45)
webservice(9)
xml(5)
敏捷(6)
方法论(28)
架构(21)
测试(1)
缓存
网络通讯(9)
读代码(6)
项目管理(19)
相册
我的相册
搜索
积分与排名
积分 - 2835081
排名 - 2
最新随笔
1. 后续内容请移步公众号“duomi88”
2. Netty百万级推送服务(转)
3. Netty 概述(转)
4. Netty优雅退出机制和原理(转)
5. 使用JavaMail SearchTerm 收取邮件
6. JAVA Thread Dump 分析综述
7. oracle 索引字段包含date类型,使用spring jdbc更新时不走索引,而是走table access full的问题
8. FTP主动模式和被动模式的比较(转载)
9. 关于java RMI在多网卡下(或者启动360,百度,腾讯等wifi共享下)无法连接问题(java.rmi.ConnectException: Connection refused to host: xx)
10. (转)Oracle数据库如何授权收费(Database Licensing)
11. 成功的 Web 应用系统性能测试 (转载)
12. It is indirectly referenced from required .class file异常
13. (转)svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted
14. automation服务器不能创建对象 解决办法
15. ERROR: transport error 202: gethostbyname: unknown host 解决办法
16. JavaScript 跨浏览器事件处理(转)
17. 函数声明 VS 函数表达式(转)
18. ORA-06548错误
19. 项目规划与管理记录2
20. tmpFile.renameTo(classFile) failed
21. redhat6.4 64位安装rlwrap
22. ora-01031:insufficient privileges
23. mysql远程连接问题 Access denied for user 'root'@' ip ' (using password: YES)
24. dbcp重连(转)
25. 解决Vmware Workstation上安装Linux系统不能SSH远程连接的问题
26. URL最大长度限制(转)
27. 用MyEclipse测试发送email时报java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
28. 我应该采用哪一种 WSDL 样式?(转载)
29. linux 挂载ntfs usb 出现mount: unknown filesystem type 'ntfs'
30. 11g oracle 用户密码过期问题
最新评论
1. re: Oracle物化视图创建全过程(转)
评论内容较长,点击标题查看
--ya
2. re: Oracle物化视图创建全过程(转)
评论内容较长,点击标题查看
--ya
3. re: 11g oracle 用户密码过期问题
问问
--是是是
4. re: mysql远程连接问题 Access denied for user 'root'@' ip ' (using password: YES)
asdfsadf
--asdf
5. re: struts(il8n)实现国际化的一个例子
在啥地方
--正常