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
分享到:
相关推荐
Struts 1.x 是Apache软件基金会Jakarta项目的一部分,是一个基于MVC(模型-视图-控制器)设计模式的Web应用框架。它使用Java Servlet和JavaServer Pages技术实现,旨在简化基于Java EE的Web应用程序的开发。 本教程...
Struts 2.5.2 是一款广泛应用的Java Web框架,用于构建企业级的MVC(Model-View-Controller)应用程序。在处理中文字符时,可能会遇到乱码问题,这通常与字符编码设置不当有关。解决这个问题需要深入理解HTTP协议、...
在使用Struts2框架进行Web开发的过程中,中文乱码问题是一个常见的挑战。这不仅影响用户体验,还可能导致数据不一致等问题。为了解决这一问题,我们需要理解其背后的原理,并采取相应的措施。下面将详细介绍如何解决...
Struts 1.x 是一款基于模型-视图-控制器(MVC)设计模式的Java Web框架,它在早期的Web应用程序开发中占据了重要的地位。本教程主要针对初学者,旨在引导学习者掌握Struts 1.x的基础知识和使用方法。 在开始学习...
Struts2是一个流行的Java Web框架,它为开发者提供了一种组织和管理应用程序逻辑的方式。在Struts2中,Action是核心组件,负责处理用户请求并返回相应的结果。本篇文章将详细探讨在Struts2.x中两个Action之间传递值...
**Struts1.x** 是一款用于构建企业级Java Web应用程序的开源框架,由Apache软件基金会维护。它基于MVC(Model-View-Controller)设计模式,简化了Java Web应用的开发过程。对于初次接触Struts的同学来说,掌握其基本...
Struts框架是Java Web开发中常用的MVC框架之一,它为开发者提供了强大的控制层支持。然而,在处理中文字符时,可能会遇到乱码问题,这主要体现在请求参数、响应内容或者静态资源显示上。解决这个问题通常涉及到编码...
在 Web 应用开发过程中,特别是在使用 Java 的 Struts 1.2 框架时,中文乱码问题是开发者经常遇到的一个难题。这不仅影响用户体验,还会对数据的准确性和完整性造成威胁。 **问题表现:** - 在页面显示中文时出现...
Struts2是一款非常流行的Java Web框架,用于构建企业级应用。在使用Struts2的过程中,开发者可能会遇到各种问题,其中时间控件显示乱码是一个常见的困扰。本文将深入探讨Struts2.1.8.1版本中时间控件乱码问题的成因...
在Java Web开发中,我们经常会遇到各种乱码问题,特别是在使用Hibernate、Struts和Spring等框架时。这些框架处理数据的方式以及与数据库交互的过程都可能导致字符编码不一致,从而引发乱码现象。以下是对这些技术全...
**Struts1.x**是Apache Struts的第一个版本,它是一个用于构建企业级Java Web应用的开源框架。该框架基于MVC(Model-View-Controller)设计模式,通过将业务逻辑、数据管理和用户界面分离,简化了Web应用程序的开发...
Struts框架是Java Web开发中常用的一个开源框架,主要用于构建基于MVC(Model-View-Controller)模式的应用程序。在Struts框架中,文件上传功能是常见的需求之一,尤其是在处理用户提交的表单数据时。然而,文件上传...
在IT领域,特别是Web开发中,处理中文...通过在`struts.properties`文件中配置`struts.i18n.encoding`,并注意表单提交和超链接传递参数的处理,可以有效避免中文乱码问题,提升Web应用的用户体验和数据处理的准确性。
### Struts2乱码终极解决办法 #### 一、引言 在开发基于Struts2框架的应用时,经常遇到的一个问题就是中文乱码。这不仅影响用户体验,还可能导致数据处理错误。本文将详细介绍如何彻底解决Struts2中的乱码问题,并...
Struts 是一个非常流行的 Java Web 开发框架,它提供了一种结构化的方式来构建 MVC(Model-View-Controller)应用程序。然而,在处理中文字符时,由于编码不一致的问题,可能会出现中文乱码的情况。这里我们将详细...
第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、...
### Struts处理中文乱码问题总结 #### 一、引言 在使用Struts框架进行Web应用程序开发过程中,中文乱码问题是开发者经常会遇到的技术难题之一。这类问题虽然看似不起眼,但如果处理不当,则可能会影响到用户体验...
Struts2 Action 处理中文乱码问题是一个常见的挑战,尤其是在进行Web开发时,由于编码格式不统一,可能导致输入或显示的中文字符出现乱码。以下是对两种解决方法的详细解释: 方法一:通过配置Struts2的i18n编码 ...
### Java Web 开发中解决乱码问题的全面指南 #### 一、乱码问题概述 在Java Web开发过程中,乱码问题是开发者经常会遇到的问题之一。它通常发生在处理含有中文或其他非ASCII字符的数据时。本篇文章将详细介绍在...
在开发Web应用程序时,中文乱码问题是一个常见的挑战,特别是在使用Struts框架的时候。这个问题的出现通常是由于客户端和服务器端的字符集不一致导致的。本文将深入探讨如何解决Struts框架下的中文乱码问题。 首先...