- 浏览: 1823212 次
文章分类
最新评论
-
coosummer:
推荐使用http://buttoncssgenerator.c ...
CSS控制<a>标签变为button -
Allen_J_Will:
哥们,事情没有你说的那么简单,很大的一个项目中,依赖jar包的 ...
struts中java.lang.NoClassDefFoundError: com/opensymphony/xwork2/util/TextUtils的解决办法
JSP HTML JAVASCRIPT 中文乱码 解决方案 大全
SP HTML JAVAS<wbr style="line-height:25px; text-align:left"><span style="line-height:25px; text-align:left">CRIPT
中文乱码 解决方案 大全 </span></wbr>
JSP的中文字符一直是各位初学者首先要解决的问题,下面进行了总结,也给出了解决办法。
C4.1 HTML中文编码转换
在JSP文件中的静态文字显示乱码,则需要在<head></head>之间增加中文设置代码,如清单附C-5所示。
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
charset指定UTF-8字符集,当然也可以指定其他支持中文的编码,如GBK和GB2312。但是整个Web应用中一定要统一一种编码,本书推荐统一为UTF-8编码。
C4.2 JSP中文编码转换
针对Tomcat下动态内容的中文乱码问题,有以下几个解决办法:
1. 在每个JSP文件的开头增加如下代码:
<%@ page language="java" contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
2. 设置编码参数:
request.setCharacterEncoding("UTF-8");
3. 使用编码过滤器。创建过滤器类SetCharacterEncoding,源码如清单附C-5所示。
清单附C-5 SetCharacterEncoding.java
package chapc;
imp<wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort java.io.IOException;</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">imp</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort javax.servlet.Filter;</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">imp</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort javax.servlet.FilterChain;</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">imp</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort javax.servlet.FilterConfig;</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">imp</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort javax.servlet.ServletException;</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">imp</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort javax.servlet.ServletRequest;</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">imp</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort javax.servlet.ServletResponse;</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">public class SetCharacterEncoding implements Filter {</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> @Override</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> public void destroy() { </span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> }</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> @Override</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> public void doFilter(ServletRequest request, ServletResponseresponse,</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> FilterChain chain) throws IOException, ServletException{</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> //设置字符编码</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> request.setCharacterEncoding("UTF-8");</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> //将控制传到下一个过滤器,如果没有过滤器则传到被调用者</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> chain.doFilter(request, response);</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> }</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> @Override</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> public void init(FilterConfig arg0) throws ServletException{</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> }</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">}</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">过滤器类还需要在web.xml中进行配置,设定要过滤哪些请求。过滤器在web.xml中的配置如清单附C-6所示。</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">清单附C-6 web.xml片段</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><filter></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><filter-name>SetCharacterEncoding</filter-name></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><filter-class>chapc.SetCharacterEncoding</filter-class></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"></filter></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><filter-mapping></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><filter-name>SetCharacterEncoding</filter-name></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><url-pattern>/*</url-pattern></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"></filter-mapping></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">方法1、方法2和方法3经常需要使用,但它们一般不是独立使用,而是两两结合:1和2结合;1和3结合。附录A中的示例用到了1和2的结合。第四章Hibernate中的信息发布系统用到了1和3的结合。</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><em><strong>4.修改Tomcat根目录中conf子目录下的server.xml文件,在中加入URIEncoding="UTF-8",如清单附C-7所示。</strong></em></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">清单附C-7 server.xml片段</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><Connector connectionTimeout="20000"</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> port="8080"</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> protocol="HTTP/1.1"</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> redirectPort="8443"</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> URIEncoding="UTF-8"/></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">该方法用来解决浏览器地址栏中的传递中文参数导致的乱码问题。浏览器地址栏传递参数(URL传参)一般表现为三种情况:form表单的get方法提交、超链接传参和response传参。</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><em><strong>Ø form表单提交方法是get:</strong></em></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><form act</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ion="registerProcess.jsp"method="get"></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><em><strong>Ø 在超链接中传递中文参数:</strong></em></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><ahref="a.jsp?p=中文参数">超链接传递中文参数测试</a></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><em><strong>5. 如果是调用response.sendRedirect传递中文参数产生的乱码,如:</strong></em></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">response.sendRedirect("a.jsp?p=中文参数");</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">请修改成如:</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><% //引入URLEncoder %></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><%@pageimp</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort="java.net.URLEncoder"%></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><%</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">String p = "中文参数";</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">//对中文参数编码</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">p = URLEncoder.encode(p, "UTF-8");</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">response.sendRedirect("a.jsp?p=" + p);</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">%></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">以解决乱码问题。</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> 如果方法4还不能解决某些超链接传参乱码问题,请使用方法5,如下:</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><%@pageimp</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort="java.net.URLEncoder"%></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><%</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">String p = "中文参数";</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">//对中文参数编码</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">p = URLEncoder.encode(p, "UTF-8");</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">%></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><a href="a.jsp?p=<%=p%>">超链接传递中文参数测试</a></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">6. JavaS</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">cript中如果出现URL传参乱码问题,如:</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">open("a.jsp?p=中文参数");</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">请修改成:</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><script type="text/javas</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">cript"></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">function openWindow()</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">{</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> var url = "a.jsp?p=中文参数";</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> url = encodeURI(url);</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> open(url);</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">}</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"></script></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><input type="button" value="JavaS</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">cript中文参数"</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> on</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">click="openWindow();"></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">以解决乱码问题。</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">JavaS</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">cript中的open方法打开浏览器窗口,传递参数,其本质也是URL传参。一般方法4就可以很好的解决中文参数乱码问题。如果方法4不生效,才考虑方法六。</span></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
JSP的中文字符一直是各位初学者首先要解决的问题,下面进行了总结,也给出了解决办法。
C4.1 HTML中文编码转换
在JSP文件中的静态文字显示乱码,则需要在<head></head>之间增加中文设置代码,如清单附C-5所示。
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
charset指定UTF-8字符集,当然也可以指定其他支持中文的编码,如GBK和GB2312。但是整个Web应用中一定要统一一种编码,本书推荐统一为UTF-8编码。
C4.2 JSP中文编码转换
针对Tomcat下动态内容的中文乱码问题,有以下几个解决办法:
1. 在每个JSP文件的开头增加如下代码:
<%@ page language="java" contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
2. 设置编码参数:
request.setCharacterEncoding("UTF-8");
3. 使用编码过滤器。创建过滤器类SetCharacterEncoding,源码如清单附C-5所示。
清单附C-5 SetCharacterEncoding.java
package chapc;
imp<wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort java.io.IOException;</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">imp</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort javax.servlet.Filter;</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">imp</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort javax.servlet.FilterChain;</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">imp</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort javax.servlet.FilterConfig;</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">imp</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort javax.servlet.ServletException;</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">imp</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort javax.servlet.ServletRequest;</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">imp</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort javax.servlet.ServletResponse;</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">public class SetCharacterEncoding implements Filter {</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> @Override</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> public void destroy() { </span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> }</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> @Override</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> public void doFilter(ServletRequest request, ServletResponseresponse,</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> FilterChain chain) throws IOException, ServletException{</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> //设置字符编码</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> request.setCharacterEncoding("UTF-8");</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> //将控制传到下一个过滤器,如果没有过滤器则传到被调用者</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> chain.doFilter(request, response);</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> }</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> @Override</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> public void init(FilterConfig arg0) throws ServletException{</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> }</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">}</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">过滤器类还需要在web.xml中进行配置,设定要过滤哪些请求。过滤器在web.xml中的配置如清单附C-6所示。</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">清单附C-6 web.xml片段</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><filter></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><filter-name>SetCharacterEncoding</filter-name></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><filter-class>chapc.SetCharacterEncoding</filter-class></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"></filter></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><filter-mapping></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><filter-name>SetCharacterEncoding</filter-name></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><url-pattern>/*</url-pattern></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"></filter-mapping></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">方法1、方法2和方法3经常需要使用,但它们一般不是独立使用,而是两两结合:1和2结合;1和3结合。附录A中的示例用到了1和2的结合。第四章Hibernate中的信息发布系统用到了1和3的结合。</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><em><strong>4.修改Tomcat根目录中conf子目录下的server.xml文件,在中加入URIEncoding="UTF-8",如清单附C-7所示。</strong></em></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">清单附C-7 server.xml片段</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><Connector connectionTimeout="20000"</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> port="8080"</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> protocol="HTTP/1.1"</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> redirectPort="8443"</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> URIEncoding="UTF-8"/></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">该方法用来解决浏览器地址栏中的传递中文参数导致的乱码问题。浏览器地址栏传递参数(URL传参)一般表现为三种情况:form表单的get方法提交、超链接传参和response传参。</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><em><strong>Ø form表单提交方法是get:</strong></em></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><form act</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ion="registerProcess.jsp"method="get"></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><em><strong>Ø 在超链接中传递中文参数:</strong></em></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><ahref="a.jsp?p=中文参数">超链接传递中文参数测试</a></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><em><strong>5. 如果是调用response.sendRedirect传递中文参数产生的乱码,如:</strong></em></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">response.sendRedirect("a.jsp?p=中文参数");</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">请修改成如:</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><% //引入URLEncoder %></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><%@pageimp</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort="java.net.URLEncoder"%></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><%</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">String p = "中文参数";</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">//对中文参数编码</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">p = URLEncoder.encode(p, "UTF-8");</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">response.sendRedirect("a.jsp?p=" + p);</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">%></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">以解决乱码问题。</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> 如果方法4还不能解决某些超链接传参乱码问题,请使用方法5,如下:</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><%@pageimp</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">ort="java.net.URLEncoder"%></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><%</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">String p = "中文参数";</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">//对中文参数编码</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">p = URLEncoder.encode(p, "UTF-8");</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">%></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><a href="a.jsp?p=<%=p%>">超链接传递中文参数测试</a></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">6. JavaS</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">cript中如果出现URL传参乱码问题,如:</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">open("a.jsp?p=中文参数");</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">请修改成:</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><script type="text/javas</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">cript"></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">function openWindow()</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">{</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> var url = "a.jsp?p=中文参数";</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> url = encodeURI(url);</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> open(url);</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">}</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"></script></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"><input type="button" value="JavaS</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">cript中文参数"</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left"> on</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">click="openWindow();"></span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">以解决乱码问题。</span><br style="line-height:25px; text-align:left"><br style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">JavaS</span><wbr style="line-height:25px; text-align:left"><span style="font-size:18px; line-height:25px; text-align:left">cript中的open方法打开浏览器窗口,传递参数,其本质也是URL传参。一般方法4就可以很好的解决中文参数乱码问题。如果方法4不生效,才考虑方法六。</span></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
相关推荐
JSP乱码解决方案大家可以看看,可以有利于大家,在JSP页面乱码问题,扥到更好的解决方案
JSP乱码 N种解决方案
mysql出了乱码可查,方便快捷,好用。jsp开发的过程中遇到的数据库端乱码解决办法都在这里了,跑不出去
mysql+jsp+SSH网站开发中文乱码解决方案
NULL 博文链接:https://itfinder.iteye.com/blog/1892381
JSP解决乱码JSP解决乱码JSP解决乱码JSP解决乱码JSP解决乱码
JSP动态网站设计中的中文乱码解决方案JSP动态网站设计中的中文乱码解决方案
最近实验室做了一个项目,使用jspsmartupload来实现的文件的上传下载,原来在windows平台运行的挺好,但是后来系统移植到linux平台上,结果在上传或下载的文件名中有中文时就会出现乱码。后来查了网上一些人的解决...
本方案解决了jsp常见的乱码问题 下载后查看详细内容
本ppt内容主要是解决方案Eclipse 开发JSP中文乱码问题,为初学使用ECLIPSE开发JAVA WEB项目的人提供方便。
主要介绍了JSP页面传参出现中文乱码的解决方案,非常实用,需要的朋友可以参考下
Jsp中文乱码解决方案.rar
这是我收集的最全的解决JSP中文乱码的文章了 其中前面几个万能解决方法是我归纳出来的,不要怕分多,因为我太缺分了,绝对值10分
JSP与MySQL交互的中文乱码解决方案
解决乱码的各种方法总结,包括数据库的解决方案,个人觉得比较详细有使用价值
Jsp传递参数时出现乱码的详细解决方案,适合被乱码困扰的朋友。
不用多说了,看名字就知道干什么的了,下了自己研究吧,不一定和你的问题,但很多人的问题还是可以解决的
中文乱码是jsp动态网站开发中经常遇到的问题,该文从产生jsp中文乱码的范例消除乱码的具体方案,具有实用性和易操作性。
JSP中文乱码解决集锦JSP中文乱码解决集锦JSP中文乱码解决集锦
jsp中文乱码问题解决方案