摘自王俊标编著的《精通Java Web开发-基于Struts EJB Hibernate JBuilder》一书:
1、页面请求
采用Filter过滤器方式:
web.xml片段
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
2
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
3
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
4
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
5
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
6
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
7
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
8
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
9
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
10
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
11
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
12
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
13
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
14
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
15
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
16
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
17
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
18
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
19
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
20
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
21
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
22
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
23
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
EncodingFilter.java
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
2
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
3
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
4
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
5
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
6
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
7
![ExpandedBlockStart.gif](http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
8
![InBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
9
![InBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
10
![InBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
11
![InBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
12
![InBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
13
![ExpandedSubBlockStart.gif](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
14
![InBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
15
![InBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
16
![ExpandedSubBlockEnd.gif](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
17
![InBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
18
![InBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
19
![ExpandedSubBlockStart.gif](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
20
![ExpandedSubBlockStart.gif](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
21
![InBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
22
![InBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
23
![InBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
24
![ExpandedSubBlockStart.gif](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
25
![InBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
26
![ExpandedSubBlockStart.gif](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
27
![InBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
28
![ExpandedSubBlockEnd.gif](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
29
![ExpandedSubBlockEnd.gif](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
30
![InBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
31
![ExpandedSubBlockStart.gif](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
32
![InBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
33
![InBlock.gif](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
34
![ExpandedSubBlockEnd.gif](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
35
![ExpandedBlockEnd.gif](http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
36
![None.gif](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
2、Web容器编码
在Tomcat的的源代码中的getParameter()方法,用户调用request.getParameter()方法时,首先调用parsetParameters()方法,在这里面将编码进行转换。如:
String s_target = new String (s_source.getBytes("iso-8859-1"), "gb2312);
3、数据库
MySQL中文问题的主要原因是:它对数据进行编码时,采用了和底层的操作系统所不同的编码。通常MySQL在中文Windows平台上正确的编码方式是GBK。因此只要将MySQL安装目录下的my.ini文件中的default-character-set选项设为GBK即可。
4、响应结果
对于Servlet的代码处理,可以使用:
……
respsonse.setContentType("text/html;charset=GB2312");
……
对于JSP文件,可以在开头部分添加如下声明:
……
<%@ page contentType="text/html;charset=GB2312" %>
……
对于HTML页面文件,则在开头部分添加声明如下:
……
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=GB2312">
</head>
……
5、XML文件
在采用"UTF-8"方式编码的情况下,使用XML文件存储中文数据常常会出现乱码的问题,建议使用"GB2312":
<?xml version='1.0' encoding="GB2312"