`

Struts过滤器的使用,已解决中文问题

阅读更多
web.xml

<filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>mypack.Charset</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>ignore</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
  <filter-mapping>
    <filter-name>Set Character Encoding</filter-name>
    <servlet-name>action</servlet-name>
  </filter-mapping>



过滤的类
package mypack;
import java.io.*;
import javax.servlet.*;

public class Charset implements Filter {
    protected String encoding = null;
    protected FilterConfig filterConfig = null;
    protected boolean ignore = true;

    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);
    }

    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);
    }
}
这2个加进工程里,就可以直接运行了。不用在设置什么。
至于数据库最好设置为UTF-8.
从此以后远离中文出现乱码的烦恼。哈哈哈
分享到:
评论

相关推荐

    struts 常用过滤器

    中文乱码问题很头疼,但一个好的过滤器就可以解决问题啦

    struts中文乱码问题解决详细步骤

    解决这个问题通常涉及到编码设置的调整,下面将详细介绍两种方法来解决Struts中的中文乱码问题。 **方法一:配置Filter** 1. **添加过滤器**:首先,我们需要在Web应用的`web.xml`文件中添加一个`...

    struts2技巧,笔记.zip指定404,500页面 utf-8过滤器 防SQL注入 解决乱码

    在web.xml中添加此过滤器并配置为全局过滤器,可以确保所有请求都使用UTF-8编码,避免乱码问题。 5. **Struts2详解**: Struts2框架的核心包括Action、Interceptor(拦截器)、Result和Value Stack等组件。Action...

    Struts2中文乱码问题最终解决方案

    解决方法是更新Struts2到2.1.8.1或更高版本,并确保使用最新的`StrutsPrepareAndExecuteFilter`过滤器。 3. **GET乱码问题**: GET请求的乱码问题通常与服务器配置有关。在Struts2的各个版本和不同过滤器设置下,...

    STRUTS ActionForm乱码,servlet全局过滤器转义编码。

    总结来说,解决Struts ActionForm乱码和Servlet全局过滤器转义编码问题,需要关注以下几个关键点: 1. **页面编码**:确保JSP文件以UTF-8编码,并在页面头部声明。 2. **服务器配置**:在Tomcat的`server.xml`中...

    struts2的中文乱码问题解决

    ### Struts2中文乱码问题解决方案 在使用Struts2框架进行Web开发的过程中,中文乱码问题是一个常见的挑战。这不仅影响用户体验,还可能导致数据不一致等问题。为了解决这一问题,我们需要理解其背后的原理,并采取...

    struts 2. 5.2解决中文乱码

    2. **修改`web.xml`**:在项目的`WEB-INF/web.xml`文件中,添加过滤器以确保请求和响应都使用UTF-8编码: ```xml &lt;filter-name&gt;characterEncodingFilter &lt;filter-class&gt;org.springframework.web.filter....

    struts 中文乱码问题解决

    本文将深入探讨Struts框架中中文乱码的问题,并提供一系列有效的解决方案。 ### Struts框架简介 Struts是一个开源的MVC(Model-View-Controller)框架,主要用于简化Java Web应用程序的开发。它基于Servlet和JSP...

    解决struts2.1.6+spring+hibernate 中文乱码

    本文将详细介绍如何通过配置`struts.properties`文件与`web.xml`中的过滤器来解决中文乱码问题。 #### 一、Struts2 配置文件(struts.properties)中的关键设置 在Struts2项目中,可以通过修改`struts.properties`...

    struts1.2 解决中文乱码

    #### 二、解决中文乱码的方法 针对上述问题,下面将详细介绍几种有效的解决方案: ##### 1. 修改请求参数编码 **方案说明:** 通过自定义 RequestProcessor 实现对请求参数的编码转换,确保请求参数能够被正确...

    struts2文件下载(解决了中文乱码问题)

    综上所述,解决Struts2文件下载时的中文乱码问题需要从多个角度考虑,包括文件名编码、响应头设置、过滤器配置、JDK版本、Tomcat配置以及开发环境的一致性。具体到本例中的DownLoadFile,可能是一个示例代码或测试...

    struts下的汉字乱码问题

    总结来说,解决Struts下的汉字乱码问题,需要从页面、过滤器、服务器配置和Struts核心Servlet等多方面进行设置,确保在整个请求生命周期中,中文字符始终以正确的编码进行处理。这不仅涉及了前端的展示,还涉及到...

    Struts框架下Ajax发送中文乱码问题的解决

    通过以上步骤,我们应该能够有效地避免在Struts框架下使用Ajax时出现的中文乱码问题。当然,实际情况可能更为复杂,例如涉及Tomcat服务器或其他中间件的配置,都需要一一排查并适配。对于开发和调试过程中遇到的具体...

    struts2中文乱码解决Demo

    本DEMO是为了解决Struts2在处理中文输入时可能出现的乱码问题,确保系统能够正确地接收和显示中文字符。 首先,我们要理解乱码产生的原因。在Web应用中,数据的传输通常涉及多种编码方式,如HTTP请求的默认编码通常...

    Struts2和servlet的中文乱码问题

    总结来说,解决Struts2和Servlet的中文乱码问题,关键在于确保JSP页面、过滤器(如果使用)、Servlet方法以及HTTP请求方式的编码一致性。对于GET请求,GB2312编码可能需要手动转换,而POST请求通常推荐使用UTF-8编码...

    解决字符编码的过滤器

    #### 四、使用Servlet过滤器解决字符编码问题 为了确保Struts2应用能够正确处理各种字符编码,可以通过配置Servlet过滤器来统一设置字符编码规则。这种方式具有以下优势: 1. **统一性**:通过在Web应用启动时即...

    struts2 使用action属性接收中文参数(post提交)

    - 为了确保请求的正确编码,可以在web应用的过滤器(Filter)中进行强制转换,比如添加一个字符编码过滤器(CharacterEncodingFilter),并配置为在请求进入Action之前先进行编码转换。 3. **Action类的参数注解**...

    J2EE中Struts中四种解决中文乱码问题的方法

    #### 方法一:通过添加过滤器解决乱码 **原理介绍**:通过自定义过滤器,在请求到达处理组件之前对请求进行编码设置,从而解决乱码问题。这种方式灵活性高,可全局应用于整个应用。 **具体实现**: 1. **创建过滤...

    一个集成了分页和过滤器的struts web小项目

    本项目中的过滤器可能解决了中文乱码问题,这通常是通过设置字符编码过滤器实现的,例如`CharacterEncodingFilter`,确保请求和响应都使用正确的字符编码,如UTF-8。 4. **中文乱码问题**:在处理中文字符时,如果...

Global site tag (gtag.js) - Google Analytics