Jsp乱码解决

来源:互联网 发布:贴贴相传网络诈骗曝光 编辑:程序博客网 时间:2024/05/29 04:19
这几天学习了一下JSP。用Eclipse3.3 + Tomcat6 。

动手做了一下。结果被中文乱码难了两天(网上一搜才知道这是JSP初学者很难解决的问题)。自已总结一下。

1. 在Html和jsp文件<head>中加入 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

2  Tomcat6的 server.xml 中修改<conector>段为: <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"  URIEncoding="UTF-8" reloadable="true" />

一定要看清楚<conector>段,因为它里有很多,其中有些是被注释了的。我就是因此而改错了地方,花了不少的时间。

3  Jsp工程中的WebContent目录下 web.xml 加入:
    <filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>filters.SetCharacterEncodingFilter</filter-class>
        <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
        </init-param>
    </filter>
<filter-mapping>
          <filter-name>Set Character Encoding</filter-name>
          <url-pattern>/*</url-pattern>
</filter-mapping>

4 Jsp工程中的WebContent目录下,新建classes文件夹,并在classes文件中新建filters文件夹。 并把Tomcate安装目录下的webapps\examples\WEB-INF\classes\filters\ SetCharacterEncodingFilter.class 拷到你新建的filters文件夹中。
经过上述几步如jsp的get 和 post 方法,均不会产生乱码。只是如果用的get方法,地址栏上显示的为乱码,不会对接收的jsp文件产生影响。


5 但地栏如果直接输入“1.jsp?username=杨” 就不正确了之 ,所以像<a herf=1.jsp?username=杨>超链示例</a> 也是错的。只能用下面的方法
<a herf=1.jsp?username=<%=URLEncoder.encode(“杨”,”UTF-8”)%>>超链示例</a>
不知道,有没有更好的方法。

后记(对5项):
Google的地址栏就不一样。它可以在地址栏中直接输入中文, 也可是编码后的字符。
http://www.google.cn/search?hl=zh-CN&q=%E6%9D%A8&meta=&aq=f&oq=

http://www.google.cn/search?hl=zh-CN&q=杨&meta=&aq=f&oq=
都行,不知它是怎么搞的^_^。
原创粉丝点击