`
xgbjmxn
  • 浏览: 259916 次
  • 性别: Icon_minigender_1
  • 来自: 新乡
社区版块
存档分类
最新评论

JAVA WEB项目(struts1.X)乱码总结

阅读更多
JAVA WEB项目(struts1.X)乱码总结

1。数据库

在创建的时候,指定其编码为UTF-8.

   (1)oracle:

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
---------------------------------------------
SIMPLIFIED CHINESE_CHINA.UTF8

SQL>

jdbc url无须指定编码。

   (2)postgres:

CREATE DATABASE "EnterInfoPortal"
WITH OWNER = postgres
ENCODING = 'UTF8'
TABLESPACE = pg_default;
GRANT ALL ON DATABASE "EnterInfoPortal" TO postgres;

jdbc url参考:jdbc:postgresql://127.0.0.1/FINANCIAL?charSet=UTF8

   (3)DB2:

db2 "CREATE DATABASE dbname USING CODESET UTF-8 TERRITORY CN"

jdbc url无须指定编码。

   (4)SqlServer:

很久没用过,待补充

   (5)MySQL(没用过,应网友要求,抄来的,具体能通过否待验证):

安装mysql的时候选utf-8;管理工具安装后,首先设置管理工具 client编码为中文的gb2312 gbk,这与mysql无关
建库的时候选utf-8
建表的时候选utf-8    utf_unicode_ci 两项
建字段的时候选utf-8   utf_unicode_ci 两项

jdbc url参考:jdbc:mysql://localhost:3306/test?user=root&password=& useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false

2。新建web项目

别的先不干,先选中项目:

右键->properties->Info->Text file encoding:Other:UTF-8。

但我用的JBuilder 2007似乎在JS文件上需要重新弄一下:

新建*.js文件,右键该文件->properties->Info->Text file encoding:Other:UTF-8。再把原来带中文的^C^V过来,save。

如果是把js所在的目录设为UTF-8,然后新建js文件,貌似不能继承,得一个个这么^C^V,烦。

3。tomcat的配置

为了保证某些中文文件名的文件能够被正确访问,需要修改tomcat/conf/server.xml,增加:

    <Connector port="8088" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />

注意:

   开发时,修改了tomcat安装目录,怎么还是乱码?

CAUSE:

   开发时,JBuilder2007(eclipse maybe)并没有发布到tomcat安装目录下,而是在

workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\conf

有个相应的server.xml文件,需要改这个,在JB下才有效。具体tmp0/tmp1/tmpN由发布的次数/项目个数来定。

4。jsp页面

保证任何jsp的第一行都是:

<%@page contentType="text/html; charset=UTF-8"%>

并且在jsp页面不要再出现charset的字样!

有的同志第一行按上面所述指定了,下面又来一个:

<META http-equiv='Content-Type' content='text/html;charset=gb2312'>

更有甚者,居然在包含的JS里面来这么一句:

document.charset='gb2312';

你说在JSP里面

<script language="JavaScript" type="text/JavaScript"> 
document.charset='gb2312';
</script>

写也就罢了,我还好找些,你把它另外存个文件,然后引入,不是磨人吗?

须知编码不统一,才是乱码之根源啊,娘希匹!

5。struts1.X的action编码处理

struts2.X没用过,应该可以用相应的办法来做,比如弄个Filter

   (1)建一个Servlet(想了半天,这里应该就是2.X里面的Filter类似的作用),code:

    import java.io.*; 
    import javax.servlet.*; 
    import javax.servlet.http.*; 
    import org.apache.struts.action.*; 
    public class ComicActionServlet extends ActionServlet { 
        public static final long serialVersionUID = -1L; 
        protected void process(HttpServletRequest request, 
                HttpServletResponse response) throws IOException, ServletException { 
            request.setCharacterEncoding("UTF-8"); 
            super.process(request, response); 
        } 
    } 

   (2)web.xml配置所有的Action都从这里经过,web.xml:

    <?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> 
    <web-app> 
        <servlet> 
            <servlet-name>ReportEngineServlet</servlet-name> 
            <servlet-class>servlets.ReportEngineServlet</servlet-class> 
        </servlet> 
        <servlet> 
            <servlet-name>BackgroundServlet</servlet-name> 
            <servlet-class> 
                com.socix.comic.common.BackgroundServlet 
            </servlet-class> 
            <load-on-startup>1</load-on-startup> 
        </servlet> 
        <servlet> 
            <servlet-name>action</servlet-name> 
            <servlet-class> 
                com.socix.comic.common.ComicActionServlet 
            </servlet-class> 
            <init-param> 
                <param-name>debug</param-name> 
                <param-value>2</param-value> 
            </init-param> 
            <init-param> 
                <param-name>config</param-name> 
                <param-value> 
                    /WEB-INF/config/struts-config.xml, 
                    /WEB-INF/config/struts-config-admin.xml, 
                    /WEB-INF/config/struts-config-series.xml, 
                    /WEB-INF/config/struts-config-chapter.xml, 
                    /WEB-INF/config/struts-config-hotnew.xml, 
                    /WEB-INF/config/struts-config-stat.xml 
                </param-value> 
            </init-param> 
            <load-on-startup>2</load-on-startup> 
        </servlet> 
        <servlet-mapping> 
            <servlet-name>action</servlet-name> 
            <url-pattern>*.do</url-pattern> 
        </servlet-mapping> 
        <servlet-mapping> 
            <servlet-name>ReportEngineServlet</servlet-name> 
            <url-pattern>/servlets/ReportEngineServlet</url-pattern> 
        </servlet-mapping> 
        <taglib> 
            <taglib-uri>/WEB-INF/tld/struts-bean.tld</taglib-uri> 
            <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location> 
        </taglib> 
        <taglib> 
            <taglib-uri>/WEB-INF/tld/struts-html.tld</taglib-uri> 
            <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location> 
        </taglib> 
        <taglib> 
            <taglib-uri>/WEB-INF/tld/struts-logic.tld</taglib-uri> 
            <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location> 
        </taglib> 
        <taglib> 
            <taglib-uri>/WEB-INF/tld/struts-nested.tld</taglib-uri> 
            <taglib-location> 
                /WEB-INF/tld/struts-nested.tld 
            </taglib-location> 
        </taglib> 
        <taglib> 
            <taglib-uri>/WEB-INF/tld/struts-template.tld</taglib-uri> 
            <taglib-location> 
                /WEB-INF/tld/struts-template.tld 
            </taglib-location> 
        </taglib> 
        <taglib> 
            <taglib-uri>/WEB-INF/tld/struts-tiles.tld</taglib-uri> 
            <taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location> 
        </taglib> 
    </web-app> 

   (3)注意上面的web.xml里面:<?xml version="1.0" encoding="UTF-8" ?>

   (4)还没完,在web.xml里面用到的struts的配置文件,其头部都和web.xml一样,应为:

<?xml version="1.0" encoding="UTF-8" ?>

有乱码的同志,请依次检查以上各项。

原帖地址:blog.csdn.net/crazylaa/archive/2009/12/24/5066784.aspx
分享到:
评论

相关推荐

    java web hibernate struts spring 全方位解决乱码

    java web hibernate struts spring 全方位解决乱码 很全!

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、...

    java中文乱码解决方案

    n 种方法教你解决java中文乱码 struts2中文乱码解决方法 1. 在struts2里面,最好将所有字符都设成utf-8。 ; charset=UTF-8"%&gt; &lt;%@ page pageEncoding="UTF-8" %&gt;1.1 在jsp页面设定字符编码。这边有必有说明的是...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    13.9.1 登录控制器类LoginAction.java 13.9.2 注册控制器类RegeditAction.java 13.9.3 设定调查题目控制器类SurveyAction.java 13.9.4 设定调查项目控制器类SetSurveyAction.java 13.10 编写配置文件...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    13.9.1 登录控制器类LoginAction.java 13.9.2 注册控制器类RegeditAction.java 13.9.3 设定调查题目控制器类SurveyAction.java 13.9.4 设定调查项目控制器类SetSurveyAction.java 13.10 编写配置文件...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    13.9.1 登录控制器类LoginAction.java 13.9.2 注册控制器类RegeditAction.java 13.9.3 设定调查题目控制器类SurveyAction.java 13.9.4 设定调查项目控制器类SetSurveyAction.java 13.10 编写配置文件...

    java处理中文乱码

    java处理中文乱码的三中方法 1.类字符转换 2.struts配置文件处理 3.web.xml配置文件处理

    Java Web应用详解.张丽(带详细书签).pdf

    动态网站篇深入讲解Servlet、JSP、JavaBean、JDBC数据库连接、数据库连接池等Java Web开发的核心技术。系统框架篇则是以架构设计的高度,讲解搭建网站的三大框架Struts、Hibernate、Sprin9及标签库。项目实战篇详细...

    网上书店系统(Struts+Hibernate)(Java EE项目案例)

    《精通Java EE项目案例-基于Eclipse Spring Struts Hibernate》 本书下载链接,电驴,迅雷皆可 ed2k://|file|%E7%B2%BE%E9%80%9AJava.EE%E9%A1%B9%E7%9B%AE%E6%A1%88%E4%BE%8B-%E5%9F%BA%E4%BA%8EEclipse.Spring....

    《程序天下:J2EE整合详解与典型案例》光盘源码

    13.9.1 登录控制器类LoginAction.java 13.9.2 注册控制器类RegeditAction.java 13.9.3 设定调查题目控制器类SurveyAction.java 13.9.4 设定调查项目控制器类SetSurveyAction.java 13.10 编写配置文件...

    网上文件管理系统(Struts)(Java EE项目案例)

    《精通Java EE项目案例-基于Eclipse Spring Struts Hibernate》 本书下载链接,电驴,迅雷皆可 ed2k://|file|%E7%B2%BE%E9%80%9AJava.EE%E9%A1%B9%E7%9B%AE%E6%A1%88%E4%BE%8B-%E5%9F%BA%E4%BA%8EEclipse.Spring....

    java web开发技术大全

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》内容包括Web客户端技术、JSP/Servlet技术、Struts 2(*、类型转换、输入校验、上传和下载文件、Struts 2的各种标签、对 AJAX的支持等)、Spring...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器...

    java web技术开发大全(最全最新)

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》内容包括Web客户端技术、JSP/Servlet技术、Struts 2(*、类型转换、输入校验、上传和下载文件、Struts 2的各种标签、对 AJAX的支持等)、Spring...

    公告管理系统(JSP+Struts)(Java EE项目案例)

    《精通Java EE项目案例-基于Eclipse Spring Struts Hibernate》 本书下载链接,电驴,迅雷皆可 ed2k://|file|%E7%B2%BE%E9%80%9AJava.EE%E9%A1%B9%E7%9B%AE%E6%A1%88%E4%BE%8B-%E5%9F%BA%E4%BA%8EEclipse.Spring....

    李兴华Java Web开发实战经典(高清版) Part2

    第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、...

    JavaWeb乱码过滤器.zip

    character-encoding-filter 是 Java Web 乱码过滤器。 web.xml  &lt;filter-name&gt;character-encoding-filter  &lt;filter-class&gt;com.github.zhanhb.filter.CharacterEncodingFilter&lt;/filter-class&gt;    ...

Global site tag (gtag.js) - Google Analytics