`
bangyan2003
  • 浏览: 50213 次
  • 性别: Icon_minigender_1
  • 来自: 猜也芒卡伽兰
最近访客 更多访客>>
社区版块
存档分类
最新评论

java web编程中解决字符的另一招(RequestProcessor)

阅读更多
以前我都是用Filter (servlet)过滤器去 解决中文乱码(字符集)的问题 ,需要在web.xml配置2处。
但是今天 发现 RequestProcessor也可以解决字符集问题。 只需在web.xml种 配置一处 即可。
在此做个备忘!
java 代码
  1. MyRequestProcessor.java
  2. package StudyNews;
  3. import javax.servlet.http.HttpServlet;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. import org.apache.struts.action.RequestProcessor;
  7. import org.apache.struts.config.ForwardConfig;
  8. import org.apache.commons.logging.Log;
  9. public class MyRequestProcessor extends RequestProcessor {
  10. public MyRequestProcessor() {}
  11. protected boolean processPreprocess( HttpServletRequest request,
  12. HttpServletResponse response ){
  13. try{
  14. request.setCharacterEncoding("latin1");//此处为自己用的数据库的字符集 <4>
  15. }
  16. catch(Exception ex){
  17. System.out.println("字符集设置失败");
  18. }
  19. return true;
  20. }
  21. }
xml
xml 代码
  1. <controller processorClass="StudyNews.MyRequestProcessor" />

---------------------------------
java 代码
  1. import java.io.IOException;
  2. import javax.servlet.Filter;
  3. import javax.servlet.FilterChain;
  4. import javax.servlet.FilterConfig;
  5. import javax.servlet.ServletException;
  6. import javax.servlet.ServletRequest;
  7. import javax.servlet.ServletResponse;
  8. public class SetCharacterEncodingFilter implements Filter {
  9. /*
  10. * (非 Javadoc)
  11. *
  12. * @see javax.servlet.Filter#destroy()
  13. */
  14. public void destroy() {
  15. this.encoding = null;
  16. this.filterConfig = null;
  17. }
  18. public void doFilter(ServletRequest request, ServletResponse response,
  19. FilterChain chain) throws IOException, ServletException {
  20. // 选择使用的字符编码
  21. if (ignore ¦ ¦ (request.getCharacterEncoding() == null)) {
  22. String encoding = selectEncoding(request);
  23. if (encoding != null) {
  24. request.setCharacterEncoding(encoding);
  25. }
  26. // 将控制权交给下一个Filter
  27. chain.doFilter(request, response);
  28. }
  29. }
// 将这个filter放置在服务中
java 代码
  1. /*
  2. * (非 Javadoc)
  3. *
  4. * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
  5. */
  6. public void init(FilterConfig filterConfig) throws ServletException {
  7. this.encoding = filterConfig.getInitParameter( "encoding ");
  8. String value = filterConfig.getInitParameter( "ignore ");
  9. if (value == null)
  10. this.ignore = true;
  11. else if (value.equalsIgnoreCase( "true "))
  12. this.ignore = true;
  13. else if (value.equalsIgnoreCase( "yes "))
  14. this.ignore = true;
  15. else
  16. this.ignore = false;
  17. }
  18. protected String selectEncoding(ServletRequest request) {
  19. return (this.encoding);
  20. }
  21. protected String encoding = null;
  22. protected FilterConfig filterConfig = null;
  23. protected boolean ignore = true;
  24. }
在web.xml文件中加入以下代码
xml 代码
xml 代码
 
  1. <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>  
分享到:
评论

相关推荐

    DisapatchAction测试和RequestProcessor控制器类

    在Java Web开发中,DispatcherAction和RequestProcessor是两种常见的控制器组件,它们在处理HTTP请求、组织业务逻辑和呈现视图方面扮演着重要角色。这里我们将深入探讨这两种控制器类的工作原理、用途以及如何进行...

    struts1整合spring 通过代理RequestProcessor实现

    Struts1 和 Spring 整合是企业级Java应用开发中常见的技术组合,它们各自负责不同的职责:Struts1 是一个成熟的MVC框架,用于处理Web层的请求与响应,而Spring则是一个全面的轻量级容器,提供依赖注入、事务管理等...

    java处理中文乱码

    在Java开发中,处理中文乱码是一个常见的问题,尤其是在处理Web应用程序时。下面将详细介绍三种处理Java中中文乱码的方法。 方法一:类字符转换 这个方法涉及到将字符串从一种编码格式转换为另一种编码格式。在给...

    精通Struts基于MVC的Java Web设计与开发 孙卫琴 光盘

    Struts是目前非常流行的基于MVC的Java Web框架。本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者...

    处理Java的ssh集成中的中文乱码问题

    在Java Web开发中,尤其是在整合SSH(Struts + Spring + Hibernate)框架时,经常会遇到中文乱码的问题。这不仅影响用户体验,还可能导致数据处理错误。本文将详细介绍如何通过自定义过滤器(Filter)和请求处理器...

    JAVA常见中文问题的解决方案.txt

    ### 知识点一:解决Java Web应用中的中文乱码问题 #### 1.1 JSP页面的字符集设置 在JSP页面中,可以通过声明的方式设置页面的编码格式,例如: ```jsp ;charset=GB2312" %&gt; ``` 这里的`GB2312`是中国大陆最常用的...

    java乱码编译成中文类

    在Java Web应用中,处理客户端请求时经常需要解决字符编码问题,以避免乱码的出现。给定的部分代码示例展示了一个自定义的`SelfRequestProcessor`类,该类继承自`RequestProcessor`,并在处理请求前对请求中的字符...

    Struts中文乱码解决方案

    Struts 是一个非常流行的 Java Web 开发框架,它提供了一种结构化的方式来构建 MVC(Model-View-Controller)应用程序。然而,在处理中文字符时,由于编码不一致的问题,可能会出现中文乱码的情况。这里我们将详细...

    基于MVC的java Web设计与开发

    Struts是目前非常流行的基于MVC的Java Web框架。本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者...

    精通Struts_基于MVC的Java Web设计与开发

    Struts是目前非常流行的基于MVC的Java Web框架。本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者...

    struts1.2 解决中文乱码

    在 Web 应用开发过程中,特别是在使用 Java 的 Struts 1.2 框架时,中文乱码问题是开发者经常遇到的一个难题。这不仅影响用户体验,还会对数据的准确性和完整性造成威胁。 **问题表现:** - 在页面显示中文时出现...

    WEB开发报错处理集锦

    这是Java中最常见的错误之一,表示某个对象的值为null。解决方法是检查代码中是否存在空指针异常,确保所有对象都被正确初始化。 3. org.apache.struts.action.RequestProcessor.processForwardConfig...

    Java_web 三大框架——Stuts开发应用

    在这个场景中,我们主要关注Struts框架,它是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,用于简化开发过程,提供更好的可维护性和可扩展性。 Struts框架的主要功能包括请求分发、业务逻辑控制、...

    struts解决中文乱码问题

    另一种更优雅的解决方案是继承`RequestProcessor`类。`RequestProcessor`是Struts框架中的核心组件,它负责处理ActionServlet接收到的所有请求,并将请求分解为多个任务。通过自定义`RequestProcessor`,我们可以在...

    精通struts:基于mvc的java web设计与开发part3

    Struts是目前非常流行的基于MVC的Java Web框架。本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者...

    精通struts:基于mvc的java web设计与开发part2

    Struts是目前非常流行的基于MVC的Java Web框架。本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者...

    Struts中中文乱码的解决方法

    Struts 是一个经典的Java Web开发框架,用于构建企业级应用。在处理中文字符时,由于字符编码的不同,可能会出现乱码问题。以下两种方法可以有效解决Struts中的中文乱码问题: 方法一: 1. **配置JSP页面**:首先...

    精通struts:基于mvc的java web设计与开发part1

    Struts是目前非常流行的基于MVC的Java Web框架。本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者...

    java struts

    在Java世界中,Struts为开发者提供了一种结构化的开发方式,简化了Web应用的架构,使得代码更加模块化,易于维护。本教程以"Hello World"为例,引导你了解并入门Java Struts的使用。 首先,我们需要理解Struts框架...

    java三大框架

    Struts只是一个MVC框架(Framework),用于快速开发Java Web应用。Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的 Action,也为V(View)提供了一系列定制标签(Custom Tag)。但...

Global site tag (gtag.js) - Google Analytics