小方的Java博客
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
27 随笔 :: 17 文章 :: 115 评论 :: 0 Trackbacks
<
2024年11月
>
日
一
二
三
四
五
六
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
7
公告
常用链接
我的随笔
我的文章
我的评论
我的参与
最新评论
留言簿
(6)
给我留言
查看公开留言
查看私人留言
随笔分类
(24)
AJAX(9)
(rss)
JAVA API 自学(2)
(rss)
其他技术(6)
(rss)
开发经验点滴(1)
(rss)
程序人生(3)
(rss)
非技术(3)
(rss)
随笔档案
(27)
2008年12月 (1)
2008年8月 (1)
2007年6月 (1)
2007年3月 (1)
2007年2月 (3)
2006年10月 (3)
2006年9月 (2)
2006年8月 (4)
2006年7月 (7)
2006年6月 (4)
文章分类
(17)
Hibernate(1)
(rss)
Html & Script(1)
(rss)
J2se 基础(3)
(rss)
J2se 高级(2)
(rss)
Java 学习方法(1)
(rss)
java 设计模式(2)
(rss)
Jsp(3)
(rss)
Servlet(1)
(rss)
Struts(2)
(rss)
其它(1)
(rss)
文章档案
(17)
2006年6月 (1)
2006年2月 (15)
2005年11月 (1)
相册
other
top
work.input_hint
连接专用
收藏夹
(1)
oo(1)
(rss)
BlogJava 朋友
中东大哥
在路上
快乐笛子
爱勤劳的鱼
最新随笔
1. DWR2.0的调用前拦截
2. [整理]sql语句一些实用技巧for oracle
3. [原创]毕业设计答辩之后感想
4. [整理]JavaScript的混合继承方法
5. [hibernate3]lab sysem项目一些建议
6. [整理]JavaScript最流行的2种定义类的方式
7. [原创/整理]首次发布DWR中文文档.PDF
8. [转载]"软件外包",中国软件行业何去何从?
9. [转载]与大学生谈软件外包
10. [原创]一个javascript的时钟
搜索
积分与排名
积分 - 74645
排名 - 740
最新评论
1. re: [原创]毕业设计答辩之后感想
同感!!!!!!!!!!!!!!
--wordcount
2. re: java多线程设计模式
高质量文章
--明明的JavaBlog
3. re: [整理] java.util.Calendar
评论内容较长,点击标题查看
--杨正益
4. re: [原创]公司实习中的领悟
看了你的,我才发现我做错了很多。我现在只是要专业知识而已。而已英语我从来就没有放在心上。看了你的我决定要好好的看英语了
--花花公子
5. re: [原创]DWR2.0的调用前拦截
在你这个应用里面怎么可以获得请求的URL呀,我想判断一下用户是否对某一个资源是否有访问权限的时候怎么样才能知道他是访问的那个资源呢
--小简
6. re: [原创]DWR2.0的调用前拦截
@bln13fb
这是我们公司自己的类,这里只是个范例,你自己有自己的类
--方佳玮
7. re: [原创/整理]首次发布DWR中文文档.PDF
支持您的事业!!!
--陈庚阳
8. re: [整理]SQL语句学习手册实例版
找的您好辛苦!您用心了!
--youyouday
9. re: [原创/整理]首次发布DWR中文文档.PDF
http://www.pusuo.net
--www.pusuo.net
10. re: [原创]DWR2.0的调用前拦截
ISessionContainer
SecurityFactory
如何导入
--bln13fb
阅读排行榜
1. [原创/整理]首次发布DWR中文文档.PDF(7609)
2. [整理]JavaScript最流行的2种定义类的方式(6155)
3. [整理]SQL语句学习手册实例版(5630)
4. [整理]Google Web Toolkit 和 googlipse(GWT eclipse 插件)开发ajax(4972)
5. [原创] 用GWT做的输入前提示(3488)
6. [整理] java.lang.reflect(2977)
7. DWR2.0的调用前拦截(2890)
8. [整理]sql语句一些实用技巧for oracle(2755)
9. [整理]介绍一个GWT的网站(2314)
10. [整理] java.util.Calendar(1849)
评论排行榜
1. [原创/整理]首次发布DWR中文文档.PDF(49)
2. [原创] 用GWT做的输入前提示(10)
3. [整理]SQL语句学习手册实例版(8)
4. [整理]sql语句一些实用技巧for oracle(6)
5. [原创]毕业设计答辩之后感想(6)
6. [原创]ajax in action 第9章 j2ee版 动态双组合功能(6)
7. [整理]介绍一个GWT的网站(4)
8. [原创]公司实习中的领悟(4)
9. [整理]什么才是最好处理中文方法(4)
10. [整理]Google Web Toolkit 和 googlipse(GWT eclipse 插件)开发ajax(3)
如何在JSP中处理中文
在一个Web应用中经常需要向服务器传递一些参数,一般通过form向服务器发送一个POST请求。在参数中有可能包含中文信息,如用户信息登记、购物定单中的地址信息等等。参数字符串一般用本地字符集进行编码,如中文采用GB2312或GBK字符集,英文或西欧文字采用ISO8859_1字符集,但在Java程序中一律采用Unicode处理字符串,这就需要有一个编码转换的过程。不幸的是,现有的大部分Java应用服务器都是在英语国家开发出来的,由于缺乏大字符集(中文、日文、韩文等)的应用环境,这些应用服务器在处理HTTP请求参数时都存在一些中文处理的问题,也是最为困扰JSP和Servlet开发者的问题。
产生这一问题的根本原因是在HTTP请求中缺乏足够的信息来指明客户端所使用的字符集。在一个JSP页面中我们可以通过下面的伪指令来指明输出页面所使用的字符集:
JSP引擎会将上面的伪指令转换为HTTP应答的头部:
Content-Type: text/html; charset=GB2312
样输出的就是采用GB2312编码的中文页面,浏览器会正确地显示出中文。但浏览器在将form的内容POST到服务器时却没有包含charset,而且将中文内容用%xx的形式(xx是十六进制数)进行编码,例如汉字"中"的GB2312内码为0xD6D0,在HTTP请求中就变成了%D6%D0,根据RFC2616的规定,如果在HTTP请求中未指明字符集,就使用ISO8859_1编码,这样"中"字在处理时变成了两个字符,分别为'u00D6'和'u00D0',而返回到客户端时变成了两个不可显示的字符,浏览器一般显示成'??'。
解决这一问题的传统做法是编写额外的代码来完成字符集的转换:
strOut = new String(strIn.getBytes("8859_1"), "GB2312");
strIn是未经过转换的字符串,其编码为ISO8859_1,strOut是经过转换的字符串,其编码为GB2312。
在Apusic 0.9.5版中实现了Java Servlets 2.3规范草案,其中在ServletRequest接口中新增了一个方法setCharacterEncoding(String enc),可以补上在HTTP请求中缺少的charset信息,而上面这一烦琐的转换过程就在Servlet引擎中自动完成了,而且Servlet引擎还对转换过程做了优化,提高了运行效率。下面给出一个简单的例子,大家可以做一下比较。
//
传统方式
<%
@ page contentType
=
"
text/html; charset=gb2312
"
%>
<
html
>
<
body
>
<
form method
=
post action
=
test.jsp
>
<
input type
=
text name
=
your_name
>
</
form
>
<%=
new
String(request.getParameter(
"
your_name
"
).getBytes(
"
8859_1
"
),
"
GB2312
"
)
%>
</
body
>
</
html
>
//
新的方式
<%
@ page contentType
=
"
text/html; charset=gb2312
"
%>
<%
request.setCharacterEncoding(
"
GB2312
"
);
%>
<
html
>
<
body
>
<
form method
=
post action
=
test.jsp
>
<
input type
=
text name
=
your_name
>
</
form
>
<%=
request.getParameter(
"
your_name
"
)
%>
</
body
>
</
html
>
posted on 2006-02-01 12:46
方佳玮
阅读(259)
评论(0)
编辑
收藏
所属分类:
Jsp
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
jspSmartUpload上传下载全攻略
如何在JSP中处理中文
生成彩色汉字验证码
Powered by:
BlogJava
Copyright © 方佳玮