以前我都是用Filter (servlet)过滤器去 解决中文乱码(字符集)的问题 ,需要在web.xml配置2处。
但是今天 发现 RequestProcessor也可以解决字符集问题。 只需在web.xml种 配置一处 即可。
在此做个备忘!
java 代码
- MyRequestProcessor.java
- package StudyNews;
-
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.struts.action.RequestProcessor;
-
- import org.apache.struts.config.ForwardConfig;
- import org.apache.commons.logging.Log;
-
-
- public class MyRequestProcessor extends RequestProcessor {
-
- public MyRequestProcessor() {}
-
- protected boolean processPreprocess( HttpServletRequest request,
- HttpServletResponse response ){
-
- try{
- request.setCharacterEncoding("latin1");
-
- }
- catch(Exception ex){
- System.out.println("字符集设置失败");
-
- }
-
- return true;
- }
-
- }
xml
xml 代码
- <controller processorClass="StudyNews.MyRequestProcessor" />
---------------------------------
java 代码
- 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 SetCharacterEncodingFilter implements Filter {
-
-
-
-
-
-
- public void destroy() {
-
- this.encoding = null;
- this.filterConfig = null;
-
- }
-
- public void doFilter(ServletRequest request, ServletResponse response,
- FilterChain chain) throws IOException, ServletException {
-
- if (ignore ¦ ¦ (request.getCharacterEncoding() == null)) {
- String encoding = selectEncoding(request);
- if (encoding != null) {
- request.setCharacterEncoding(encoding);
-
- }
-
- chain.doFilter(request, response);
- }
-
- }
// 将这个filter放置在服务中
java 代码
-
-
-
-
-
- public void init(FilterConfig filterConfig) throws ServletException {
- 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);
- }
-
- protected String encoding = null;
-
- protected FilterConfig filterConfig = null;
-
- protected boolean ignore = true;
-
- }
在web.xml文件中加入以下代码
xml 代码
xml 代码
- <filter> <filter-name> SetCharacterEncodingFilter </filter-name> <filter-class> SetCharacterEncodingFilter </filter-class> <init-param> <param_name> encoding </param_name> <param-value> GBK </param-value> </init-param> </filter> <filter-mapping> <filter-name> SetCharacterEncodingFilter </filter-name> <url_pattern> /* </url_pattern> </filter-mapping>
分享到:
- 2007-10-14 12:39
- 浏览 3647
- 评论(0)
- 论坛回复 / 浏览 (0 / 2419)
- 查看更多
相关推荐
在Java Web开发中,DispatcherAction和RequestProcessor是两种常见的控制器组件,它们在处理HTTP请求、组织业务逻辑和呈现视图方面扮演着重要角色。这里我们将深入探讨这两种控制器类的工作原理、用途以及如何进行...
Struts1 和 Spring 整合是企业级Java应用开发中常见的技术组合,它们各自负责不同的职责:Struts1 是一个成熟的MVC框架,用于处理Web层的请求与响应,而Spring则是一个全面的轻量级容器,提供依赖注入、事务管理等...
在Java开发中,处理中文乱码是一个常见的问题,尤其是在处理Web应用程序时。下面将详细介绍三种处理Java中中文乱码的方法。 方法一:类字符转换 这个方法涉及到将字符串从一种编码格式转换为另一种编码格式。在给...
Struts是目前非常流行的基于MVC的Java Web框架。本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者...
在Java Web开发中,尤其是在整合SSH(Struts + Spring + Hibernate)框架时,经常会遇到中文乱码的问题。这不仅影响用户体验,还可能导致数据处理错误。本文将详细介绍如何通过自定义过滤器(Filter)和请求处理器...
### 知识点一:解决Java Web应用中的中文乱码问题 #### 1.1 JSP页面的字符集设置 在JSP页面中,可以通过声明的方式设置页面的编码格式,例如: ```jsp ;charset=GB2312" %> ``` 这里的`GB2312`是中国大陆最常用的...
在Java Web应用中,处理客户端请求时经常需要解决字符编码问题,以避免乱码的出现。给定的部分代码示例展示了一个自定义的`SelfRequestProcessor`类,该类继承自`RequestProcessor`,并在处理请求前对请求中的字符...
Struts 是一个非常流行的 Java Web 开发框架,它提供了一种结构化的方式来构建 MVC(Model-View-Controller)应用程序。然而,在处理中文字符时,由于编码不一致的问题,可能会出现中文乱码的情况。这里我们将详细...
Struts是目前非常流行的基于MVC的Java Web框架。本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者...
Struts是目前非常流行的基于MVC的Java Web框架。本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者...
在 Web 应用开发过程中,特别是在使用 Java 的 Struts 1.2 框架时,中文乱码问题是开发者经常遇到的一个难题。这不仅影响用户体验,还会对数据的准确性和完整性造成威胁。 **问题表现:** - 在页面显示中文时出现...
这是Java中最常见的错误之一,表示某个对象的值为null。解决方法是检查代码中是否存在空指针异常,确保所有对象都被正确初始化。 3. org.apache.struts.action.RequestProcessor.processForwardConfig...
在这个场景中,我们主要关注Struts框架,它是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,用于简化开发过程,提供更好的可维护性和可扩展性。 Struts框架的主要功能包括请求分发、业务逻辑控制、...
另一种更优雅的解决方案是继承`RequestProcessor`类。`RequestProcessor`是Struts框架中的核心组件,它负责处理ActionServlet接收到的所有请求,并将请求分解为多个任务。通过自定义`RequestProcessor`,我们可以在...
Struts是目前非常流行的基于MVC的Java Web框架。本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者...
Struts是目前非常流行的基于MVC的Java Web框架。本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者...
Struts 是一个经典的Java Web开发框架,用于构建企业级应用。在处理中文字符时,由于字符编码的不同,可能会出现乱码问题。以下两种方法可以有效解决Struts中的中文乱码问题: 方法一: 1. **配置JSP页面**:首先...
Struts是目前非常流行的基于MVC的Java Web框架。本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者...
在Java世界中,Struts为开发者提供了一种结构化的开发方式,简化了Web应用的架构,使得代码更加模块化,易于维护。本教程以"Hello World"为例,引导你了解并入门Java Struts的使用。 首先,我们需要理解Struts框架...
Struts只是一个MVC框架(Framework),用于快速开发Java Web应用。Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的 Action,也为V(View)提供了一系列定制标签(Custom Tag)。但...