1.首先jsp页面要使用UTF-8编码,个人建议将pageEncoding与contentType中的编码全部设置为UTF-8
2.修改tomcat配置文件server.xml,添加一个属性[红色部分],如下
<Connector
port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />
public class SetCharacterEncodingFilter implements Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
/*
* (non-Javadoc)
*
* @see javax.servlet.Filter#destroy()
*/
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
/*
* (non-Javadoc)
*
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest,
* javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// Conditionally select and set the character encoding to be used
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}
// Pass control on to the next filter
chain.doFilter(request, response);
}
/*
* (non-Javadoc)
*
* @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
*/
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;
}
/*
*
*/
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}
web.xml
<filter>
<filter-name>Encoding</filter-name>
<filter-class>
struts.util.SetCharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
这份"STRUTS1.2中文文档"涵盖了这些主题,是初学者和进阶者学习Struts框架的重要参考资料。文档中的实例、教程和API参考可以帮助读者快速掌握Struts1.2的使用方法,提升开发效率。投入时间深入学习,无疑会为你的...
Struts1.2中文学习手册是一本面向初学者的指南,它涵盖了Struts1.2的基础知识、配置、控制器、模型、视图以及动作和业务逻辑的整合。 首先,手册会介绍Struts1.2的核心概念,包括Action类、Form Bean和Tiles布局。...
- **标签库**:Struts 1.2 提供了一系列用于显示和处理国际化内容的标签,如 `<s:text>` 标签用于显示资源文件中的消息。 - **配置文件**:可以在 `struts-config.xml` 配置文件中指定默认的 `Locale`,并通过 `...
### Struts 1.2 中文乱码问题详解与解决方案 #### 一、问题背景及原因分析 在 Web 应用开发过程中,特别是在使用 Java 的 Struts 1.2 框架时,中文乱码问题是开发者经常遇到的一个难题。这不仅影响用户体验,还会...
总的来说,这个实例项目展示了如何在Struts1.2中实现国际化和表单验证,这对于任何需要处理多语言用户和确保数据完整性的Web应用都是非常重要的。通过学习和实践这些概念,开发者可以创建更健壮、用户体验更好的Web...
通过阅读《Struts中文手册.pdf》可以深入理解Struts1.2的原理和配置,研究《JSTL.pdf》能掌握JSTL的各种标签用法,而《JSP.pdf》则可以帮助你巩固JSP的基础知识和实践技巧。这三份文档将构成一个全面的学习资源,...
对于初学者来说,这个压缩包提供了一个很好的实践机会,可以学习如何配置Struts1.2、编写Action、处理JSP表单数据以及使用Log4j进行日志记录。通过对`myActionServlet.java`、`struts-config.xml`和`log4j....
Struts1.2框架是Apache组织开发的一个基于MVC设计模式的Java Web应用程序框架,它在Web开发中扮演着重要角色。在这个特定的场景中,我们关注的是如何在Struts1.2中实现文件的上传和下载功能。 上传文件通常涉及用户...
全面生成具有Struts1.2 框架支持的开发工具 1、自动生成的内容 ★ VO、POJO对象 ★ DAO接口 ★ IMPL接口实现类 ★ DAO工厂 ★ VO、POJO工厂 ★ DBC数据库连接管理类,数据库事务处理机制 ★ EncodingFilter ...
- **Action类**:Struts1的核心是Action类,它是处理用户请求的主要组件,负责业务逻辑的执行。 - **配置文件**:struts-config.xml是Struts1的主要配置文件,用于定义Action映射、表单bean、数据源等。 - **...
该API文档是官方发布的最新版本,包含了中英文对照,对开发者来说非常友好,无论是英语熟练还是中文为主的开发者,都能快速理解和应用。文档详尽地列出了Struts1.2.9框架中的各个类、接口、方法以及常量,为开发者...
在《Struts中文手册》中,你会深入了解到Struts1.2的原理和使用方法。手册首先会介绍MVC模式的基本概念,解释为什么这种模式对于大型Web应用的开发至关重要。Model代表应用程序的数据和业务逻辑,View负责数据的展示...
### Struts in Action中文版1.2:Struts框架详解 #### 1. 关于本书与Struts背景 《Struts in Action》是一本全面介绍了领先Java Web开发框架——Struts的经典著作。本书由Ted Husted撰写,Eric Liu翻译,并在2005...
《Struts2.0中文帮助手册.chm》将详细介绍Struts2的API、配置和使用技巧,而《Struts1.2.pdf》则可能包含了Struts1.x的框架原理、开发流程以及案例分析。通过学习这两本书,开发者可以深入理解这两个版本的Struts...
2. 线程模式:Struts1.2的Action是单例模式,需要处理线程安全问题,而Struts2.0为每个请求创建Action实例,避免了线程安全问题。 3. Servlet依赖:Struts1.2的Action直接依赖Servlet API,而Struts2.0则减少了对...
- **区别概述**:Struts 1.2 和 Struts 2.0 在设计理念和实现机制上有明显差异。 ##### 1. Action类 - **Struts 1.2**:要求Action类继承自特定基类。 - **Struts 2.0**:Action类通常继承自`ActionSupport`类。 #...
- **乱码问题**:在处理用户输入的数据时,可能会遇到中文乱码的问题。为了解决这个问题,需要确保数据库、配置文件、页面编码一致,通常使用`gbk`或`utf-8`作为统一的编码格式。 - **其他常见错误**: - 确保所有...
- **线程模式**:Struts1.2的Action是单例模式,需要处理线程安全问题,而Struts2.0为每个请求创建新的Action实例,避免了线程安全问题。 - **Servlet依赖**:Struts1.2的Action直接依赖于Servlet API,而Struts...
#### 二、Struts 1.2与Struts 2.0对比分析 1. **Action类的设计**: - **Struts 1.2**:要求Action类必须继承特定的基类。 - **Struts 2.0**:Action类推荐继承`ActionSupport`基类,但不是强制要求,更加灵活。 ...
5. **Struts配置**:在Struts 1.2中,你需要在struts-config.xml文件中定义Action,配置Action的forward,指向处理下载的Servlet或JSP。同时,可能还需要配置拦截器(interceptors)来处理表单验证和其他业务逻辑。 ...