★ 首先说下,这篇文章很菜,基本上是入门的东西,熟手绕道。
第一种,通常情况下,普通的JSP中,设置页面的字符集,这没有什么好说的。
看以下代码:
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
content="text/html; charset=UTF-8"
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
第二种,普通的JAVA WEB项目中,使用Servlet过滤器,是一种不错的选择,通常选这种的比较多。
这种方式分两步,第一,实现(implements)一个Servlet Filter;第二,web.xml中配制filter.
Filter实现类
/**********************************************
* @author Simon Hoo (simon@cottsoft.com)
* @contact QQ:9930323 MSN: simon_hoo@msn.com
* @OnlineSupport: http://www.CottSoft.com
* @Create 2011-5-7
* @version V1.0
********************************************/
package com.cottsoft.j2ee.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class EncodingFilter implements Filter {
private String encoding=null;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
encoding = filterConfig.getInitParameter("encoding");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
String encoding = getEncoding();
if(encoding!=null && !"".equals(encoding.trim())){
request.setCharacterEncoding(encoding);
}
doFilter(request, response, filterChain);
}
@Override
public void destroy() {
}
public String getEncoding() {
return encoding;
}
}
web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>cottsoft</display-name>
<welcome-file-list>
<welcome-file>/Welcome.88</welcome-file>
</welcome-file-list>
<filter>
<filter-name>Set Encoding Filter</filter-name>
<filter-class>
com.cottsoft.j2ee.filter.EncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Encoding Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
第三种,在使用struts框架的J2EE项目中,如是当前项目已经配有多个其它功能的Filter,如果再配一个用于解决字符编码的Filter,就有可能该Filter功能无效(不要说不,我写这篇文章就是因为出现过该问题,才写的)。那么可以通过扩展Struts的RequestProcessor类来实现struts获取表单乱码问题。当然,也可以在web.xml中从上往下所配的第一个Filter实现类中,增加解决乱码功能,但前题是,这个Filter实现类要是允许你自己可以修改的。但这样做就不能做到功能分开的目的了。不符合相关设计原则。下面说说RequestProcessor的方式。
这种方式只能处理struts相关的请求数据。
同样也是分两步,第一步,扩展RequestProcessor类。第二步,在struts-config.xml(Struts配置文件)中配置.
RequestProcessor护展类
/**********************************************
* @author Simon Hoo (simon@cottsoft.com)
* @contact QQ:9930323 MSN: simon_hoo@msn.com
* @OnlineSupport: http://www.CottSoft.com
* @Create 2011-4-23
* @version V1.0
********************************************/
package com.cottsoft.common;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.RequestProcessor;
public class CottSoftRequestProcessor extends RequestProcessor {
@Override
public void process(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
super.process(request, response);
}
}
struts-config.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans>
</form-beans>
<global-exceptions />
<global-forwards>
<forward name="welcome" path="/welcome.88"></forward>
</global-forwards>
<action path="/welcome"
type="com.cottsoft.website.web.action.WelcomeAction"
name="WelcomeForm"
attribute="WelcomeForm"
scope="request"
input="/welcome.jsp">
<forward name="index" path="/index.jsp"></forward>
</action>
</action-mappings>
<controller processorClass="com.cottsoft.common.CottSoftRequestProcessor"></controller>
<message-resources parameter="com.cottsoft.website.resources.ApplicationResources"/>
</struts-config>
当然,还有其它,比如说从数据库角度考虑来处理中文的,很多种方式,这里就不一一列写了。
分享到:
相关推荐
本文将围绕一个典型的案例来详细分析如何解决J2EE项目中的中文乱码问题,并总结出一系列实用的方法。 #### 一、问题背景与原因分析 在J2EE应用中,中文乱码主要出现在以下几个环节:用户输入数据时、服务器处理...
总结来说,解决J2EE应用中文乱码问题的关键在于理解字符集的原理,并在每个可能引起乱码的环节进行相应的编码设置。通过统一编码标准,尤其是使用广泛支持的UTF-8,可以显著减少乱码出现的可能性。在开发过程中,...
本文将详细介绍如何解决J2EE应用程序中的乱码问题,并提供实际操作步骤。 #### 一、J2EE乱码问题概述 在J2EE环境中,常见的乱码问题主要来源于以下几个方面: 1. **服务器配置**:如Tomcat等Web容器的默认字符集...
J2EE开发中遇到的乱码问题是一个常见的困扰,尤其是在处理中文字符时。本文将详细介绍如何解决这些问题,以一个基于Eclipse 3.3 + MyEclipse 6.0 + Tomcat 5.5的项目为例,该项目采用了Ext、Struts和Hibernate框架。...
总之,解决Java/J2EE中的中文乱码问题需要深入理解编码机制,合理配置系统环境,统一应用系统编码,并在各个层次进行适配和转换。通过以上所述的多种策略和方法,开发者可以有效地预防和解决乱码问题,确保应用的...
在J2EE项目中,Servlet常用于接收客户端请求,处理业务逻辑,并将结果返回给用户。 2. **JSP(JavaServer Pages)**:JSP是一种动态网页技术,允许开发者在HTML页面中嵌入Java代码。它简化了视图层的开发,使页面...
11. **MVC(Model-View-Controller)模式**:在J2EE项目中,理解如何实现MVC架构对于组织代码和设计良好的应用至关重要。 通过这个简单的J2EE项目,开发者可以逐步熟悉这些核心概念和技术,为后续的进阶学习打下...
这个压缩包“j2ee项目中所用到的包”包含了在J2EE项目中常用的框架和库,使得开发者能够快速搭建开发环境,减少寻找和配置组件的时间,提高开发效率。 首先,我们来看看其中的一个关键组件——Hibernate。Hibernate...
经典J2EE项目案例 从给定的文件信息中,我们可以提取出以下知识点: 1. 项目开发环境和工具 * 项目开发环境:Tomcat6.0、IE10、Firefox8.0、JDK1.7、Windows 7 * 项目开发工具:MyEclipse9.0、Mysql、JUnit 2. ...
总的来说,"J2EE项目实例源码"提供了一个实践性的学习案例,涵盖了J2EE应用开发中的数据库设计、连接、业务逻辑处理以及视图展现等多个关键环节。通过研究这个项目,开发者可以深化对J2EE平台的理解,提升实际项目...
软件测试技术在J2EE项目中的应用至关重要,因为J2EE平台是企业级应用开发的基石,尤其在大型电子商务等领域,软件质量的高低直接影响到企业的运营和用户体验。J2EE基于Java2平台,提供了一种简化企业解决方案开发、...
在J2EE项目中,模型通常由EJB或普通Java类实现,视图是JSP,控制器可能是Servlet或JSF(JavaServer Faces)组件。 5. **JDBC与数据库交互**:JDBC是Java中连接和操作数据库的标准接口。在本项目中,开发者可能使用...
在《J2EE案例开发》这个压缩包中,你可能会找到一个完整的J2EE项目实例,包括源代码、配置文件、数据库脚本等,通过学习和分析这个案例,你可以更好地理解上述知识点如何在实际项目中应用。记得动手实践,理论结合...
本书汇集了大量企业级应用项目开发的经验,归纳了不同项目中使用的框架、模式、设计方法、开发方法,形成一个完整的技术体系和指导方法,以供用J2EE进行项目开发的初级人员和有一定经验的高级开发人员阅读。...
### J2EE中文乱码问题终极解决之道 在开发基于J2EE的应用系统时,中文乱码问题是开发者经常遇到的一个难题。本篇文章旨在提供一种全面、深入的解决方案,帮助开发者彻底解决这一问题。 #### 一、理解编码机制 在...
总之,解决J2EE平台下的乱码问题,需要从编码的来源、转换和目标各方面进行细致分析,并采取适当的措施确保整个数据流转过程中的字符编码一致性。通过合理的编码管理,可以有效地避免乱码问题,保证信息系统稳定可靠...
通过深入研究提供的J2EE项目案例源代码,初学者不仅可以学习到如何在实际项目中应用这些技术,还能了解如何组织代码结构,遵循设计模式,以及如何有效地利用J2EE提供的服务。这将有助于他们快速提升在企业级Java开发...
j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发经验分享j2ee开发...