<< Bookmarks links | 首页 | Eclipse Jbuilder与app Server、Ant、VSS集成 >>

Mysql Hibernate Struts Tomcat中文问题解决方法

    Mysql 的版本经常变化,对字符集的支持也是经常变化;mysql 的 JDBC Driver的版本也经常变化,而且mysql JDBC Driver本身也不完善,不仅仅是中文问题。本文介绍一个特定环境的中文处理办法,思想是在所有的地方都一致的使用GBK编码。

环境:

struts+tiles+hibernate+mysql4.0.17+tomcat5.0.19+mysql-connector-java-3.1-nightly-20040602-bin.jar

注意:JDBC Driver版本必须是3.1,驱动程序很重要!

JSP的字符集

所有的JSP第一行加入:

<%@ page contentType="text/html;charset=GBK"  %>

Web应用加入Filter

a)web.xml里加入如何配置

  <filter>

    <filter-name>filter</filter-name>

    <filter-class>com.common.web.RequestFilter</filter-class>

    <init-param>

      <param-name>encoding</param-name>

      <param-value>GBK</param-value>

    </init-param>

  </filter>

  <filter-mapping>

    <filter-name>filter</filter-name>

    <servlet-name>action</servlet-name>

  </filter-mapping>

b)RequestFilter里如下编码

    public void doFilter( ServletRequest request, ServletResponse response,

                          FilterChain chain )

        throws IOException, ServletException {

        if ( encoding != null ) {

            request.setCharacterEncoding( encoding ) ;

        } else {

            request.setCharacterEncoding( "UTF-8" ) ;

        }

        chain.doFilter( request, response ) ;

}

Hibernate的数据库连接配置

Hibernate:hibernate.cfg.xml

        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

        <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1/test?useUnicode=true&amp;characterEncoding=GBK</property>

        <property name="hibernate.connection.username">root</property>

修改server.xml

打开tomcatserver.xml文件,找到区块,加入如下一行:
URIEncoding=”GBK”
完整的应如下:


<Connector
port="80"  maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                enableLookups= "false" redirectPort="8443" acceptCount="100"
               debug= "0" connectionTimeout="20000"
               disableUploadTimeout= "true"
               URIEncoding= "GBK"
/>

标签 :



发表评论 发送引用通报