记忆好很大程度决定能力!
适时总结是一种很好的彌补方法!
BlogJava
首页
新随笔
联系
聚合
管理
随笔 - 4 文章 - 10 trackbacks - 0
<
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
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔档案
2009年4月 (1)
2007年12月 (1)
2007年9月 (1)
2007年8月 (1)
文章分类
ajax(1)
Database(24)
eclipse(5)
EJB(1)
hibernate(9)
j2ee(3)
j2se(13)
j2se名词解释(1)
JavaScript(6)
JAVA知识(8)
jsp实例(1)
jsp技术(10)
spring(8)
struts(8)
WEB开发(4)
xml(1)
技术文章(3)
编程实例
网站导航(9)
文章档案
2009年3月 (5)
2009年2月 (2)
2007年10月 (1)
2007年9月 (15)
2007年8月 (94)
搜索
最新评论
1. re: Spring 重点个人小结(摘录)
能看见你的文章真是太好了,大神,我想问下你说“完整的代码大家可以下载附件”,中的附件在哪里了,没看见
--季雪
2. re: IntelliJ IDEA 7注册码+中文入门手册IntelliJ IDEA 7 注册机(非覆盖破解)
Rubish!!!!!!!!!!!!!!!!!!!!111
--nige
3. re: IntelliJ IDEA 7注册码+中文入门手册IntelliJ IDEA 7 注册机(非覆盖破解)
dddd
--jiaoziwj
4. re: JavaScript学习笔记——客户端与服务器端的通信
楼上的人 怎么这么说话 学习学习 怎么这样说话
--10
5. re: 用spring的AOP实现异常拦截 (转)
真是无巧不成双,,楼主引用的代码,,是我同事写的.原来07年她在广州...哈哈哈.现在在北京了
--wonkzhang
阅读排行榜
1. Spring从入门到精通笔记(1013)
2. [转]工程师的N种性格 (312)
3. [转贴]做好个人时间管理(286)
4. IT人的好习惯和不良习惯总结(转csdn老紫竹的专栏的文章)(257)
评论排行榜
1. [转贴]做好个人时间管理(1)
2. IT人的好习惯和不良习惯总结(转csdn老紫竹的专栏的文章)(0)
3. Spring从入门到精通笔记(0)
4. [转]工程师的N种性格 (0)
使用FilterServlet对页面进行转码
相信很多朋友在使用JSP/Servlet等技术进行页面编程的时候都会或多或少地遇到乱码问题。解决的方法有很多,比较常见的是手动对所有可能包含中文的字符串进行转码:
String latin
=
;
String gbk
=
new
String(latin.getBytes(
"
iso-8859-1
"
),
"
gbk
"
);
这个方法过去我也比较常用,的确有效,但很累赘耶,丝毫没有模式之美,有没有更优雅的方法呢?如果你和我一样有疑虑的话,可以考虑使用FilterServlet:
1
import
java.io.
*
;
2
import
javax.servlet.
*
;
3
import
javax.servlet.http.
*
;
4
5
import
org.apache.log4j.
*
;
6
7
public
class
CharsetFilter
8
extends
HttpServlet
implements
Filter
{
9
private
static
Logger logger
=
Logger.getLogger(
"
Filter servlet
"
);
10
11
public
void
init(FilterConfig filterConfig)
12
throws
ServletException
{
13
}
14
15
public
void
doFilter(ServletRequest request,ServletResponse response,
16
FilterChain filterChain)
{
17
if
(request
!=
null
)
{
18
String charset
=
request.getCharacterEncoding();
19
if
(charset
==
null
||
!
charset.equalsIgnoreCase(
"
gbk
"
))
20
try
{
21
request.setCharacterEncoding(
"
GBK
"
);
22
}
23
catch
(UnsupportedEncodingException ex)
{
24
logger.warn(ex.getMessage());
25
}
26
}
27
try
{
28
filterChain.doFilter(request,response);
//
递交责任链下一环
29
}
30
catch
(Exception ex)
{
31
logger.error(ex.getMessage());
32
}
33
}
34
35
public
void
destroy()
{
36
}
37
}
38
FilterServlet内部应该使用责任链(Chain of Responsibility)实现,在这里我们把对字符串的转码做为责任链中的一环,从上一环拿到request,处理后交给链的下一环。另外需要在web.xml里做些配置:
<
filter
>
<
filter-name
>
charsetfilter
</
filter-name
>
<
filter-class
>
pqp.servlet.CharsetFilter
</
filter-class
>
</
filter
>
<
filter-mapping
>
<
filter-name
>
charsetfilter
</
filter-name
>
<
url-pattern
>
/*
</
url-pattern
>
<
dispatcher
>
REQUEST
</
dispatcher
>
</
filter-mapping
>
其中“REQUEST”指定了filter拦截的类型,有REQUEST、FORWARD、ERROR和INCLUDE,可组合选择,一般选REQUEST。全部设置好后重新打包、部署,这样Servlet就可以自动把所有的request转换为GBK的字符集了,是不是很方便?
但在这里加了filter后对性能方面的影响未知,大家可以讨论一下。
posted on 2007-08-16 14:17
冬天出走的猪
阅读(226)
评论(0)
编辑
收藏
所属分类:
jsp实例
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理