`
kenshinlk
  • 浏览: 118306 次
  • 性别: Icon_minigender_1
  • 来自: 广东.佛山.南海
社区版块
存档分类
最新评论

使用filter解决中文乱码问题

阅读更多

一.在web.xml中配置

xml 代码
  1. <filter>  
  2.         <filter-name>EncodingFilter</filter-name>  
  3.         <filter-class>com.kenshin.base.SysFilter</filter-class>  
  4.         <init-param>  
  5.             <param-name>encoding</param-name>  
  6.             <param-value>UTF-8</param-value>  
  7.         </init-param>  
  8.         <init-param>  
  9.             <param-name>enable</param-name>  
  10.             <param-value>true</param-value>  
  11.         </init-param>  
  12.     </filter>  
  13.     <filter-mapping>  
  14.         <filter-name>EncodingFilter</filter-name>  
  15.         <url-pattern>*.do</url-pattern>  
  16.     </filter-mapping>  
 

二.filter类代码

java 代码
  1. package com.kenshin.base;   
  2.   
  3. import java.io.IOException;   
  4.   
  5. import javax.servlet.Filter;   
  6. import javax.servlet.FilterChain;   
  7. import javax.servlet.FilterConfig;   
  8. import javax.servlet.ServletException;   
  9. import javax.servlet.ServletRequest;   
  10. import javax.servlet.ServletResponse;   
  11.   
  12. import org.apache.commons.logging.Log;   
  13. import org.apache.commons.logging.LogFactory;   
  14. import org.hibernate.Session;   
  15. import org.hibernate.SessionFactory;   
  16. import org.hibernate.Transaction;   
  17.   
  18. public class SysFilter implements Filter {   
  19.     protected String sEncodingName;   
  20.   
  21.     protected FilterConfig sysFilter;   
  22.   
  23.     protected boolean bEnable;   
  24.   
  25.     protected Log logger = LogFactory.getLog(SysFilter.class);   
  26.   
  27.     public void destroy() {   
  28.   
  29.     }   
  30.   
  31.     public void doFilter(ServletRequest arg0, ServletResponse arg1,   
  32.             FilterChain arg2) throws IOException, ServletException {   
  33.         // TODO Auto-generated method stub   
  34.         if (this.bEnable) {   
  35.             try {     
  36.                 arg0.setCharacterEncoding(this.sEncodingName);   
  37.                 arg1.setContentType("text/html;charset=" + this.sEncodingName);   
  38.                 arg1.setCharacterEncoding(this.sEncodingName);   
  39.                 arg2.doFilter(arg0, arg1);   
  40.   
  41.             } catch (Exception e) {   
  42.                 logger.info("出错了");   
  43.             }   
  44.             // session.close();   
  45.         } else {   
  46.             arg2.doFilter(arg0, arg1);   
  47.         }   
  48.     }   
  49.   
  50.     public void init(FilterConfig arg0) throws ServletException {   
  51.         // TODO Auto-generated method stub   
  52.         this.sysFilter = arg0;   
  53.         this.loadFilterSetting();   
  54.     }   
  55.   
  56.     private void loadFilterSetting() {   
  57.         this.sEncodingName = this.sysFilter.getInitParameter("encoding");   
  58.         logger.info("encoding:" + sEncodingName);   
  59.         String sEnable = this.sysFilter.getInitParameter("enable");   
  60.         if (sEnable != null && sEnable.equalsIgnoreCase("true")) {   
  61.             this.bEnable = true;   
  62.         } else {   
  63.             this.bEnable = false;   
  64.         }   
  65.     }   
  66.   
  67.   
  68. }   
分享到:
评论
1 楼 what866 2011-11-30  
哥们太给力了。
顶!!!

相关推荐

    Filter解决中文乱码

    总结来说,使用Filter解决中文乱码问题是一种有效的方法,通过在请求处理链的早期设定合适的字符编码,可以避免因为编码不一致而导致的乱码问题。`CharacterEncodingFilter`的实现及其在`web.xml`中的配置是实现这一...

    Filter中文乱码问题.doc

    在这个文档中,我们将深入探讨如何使用Filter解决中文乱码问题。 首先,我们需要创建一个自定义的Filter类,继承自`javax.servlet.Filter`接口,并实现其中的`init`和`doFilter`方法。`init`方法在Filter初始化时...

    使用过滤器解决中文乱码问题

    ### 使用过滤器解决中文乱码问题 在Web开发过程中,经常遇到的一个问题是中文或其它非ASCII字符的乱码问题。这种现象通常出现在浏览器接收的数据与实际编码格式不匹配时。解决此类问题的一种常见方法是使用过滤器...

    springMVC解决中文乱码

    使用 Filter 来解决中文乱码问题 在上面的示例中,我们使用了 CharacterEncodingFilter 来解决中文乱码问题。这个 Filter 可以自动地将 POST 请求的字符编码设置为 UTF-8,从而解决中文乱码问题。 自定义 Filter ...

    java解决中文乱码问题

    有些情况下,使用 ISO-8859-1 编码可以解决中文乱码问题。例如: `String s2 = new String(s1.getBytes("ISO-8859-1"), "GBK");` 3. 使用 Tomcat 的 CharacterEncodingFilter Tomcat 5.5 中文乱码的问题可以使用 ...

    jsp用过滤器解决中文乱码问题的方法.docx

    要使用jsp过滤器解决中文乱码问题,我们需要定义一个过滤器类,实现Filter接口。下面是一个简单的示例代码: ```java public class EncodingFilter implements Filter { @Override public void destroy() { // ...

    如何配置Filter过滤器处理JSP中文乱码

    解决这个问题的一种常见方法是使用Filter过滤器。以下是配置Filter过滤器处理JSP中文乱码的详细步骤: 1. **配置web.xml文件** 在项目的`web.xml`文件中,你需要添加一个Filter来定义处理乱码的逻辑。首先,声明一...

    拦截器解决中文乱码问题

    "拦截器解决中文乱码问题"这个主题,主要关注的是如何通过使用拦截器(Interceptor)这一技术手段来预防或解决乱码现象。拦截器是Spring MVC框架中的一个重要组件,它可以对HTTP请求进行预处理和后处理,从而在数据...

    jsp 过滤器——解决中文乱码问题

    ### jsp过滤器——解决中文乱码问题 #### 背景介绍 在Web应用开发过程中,特别是使用Java Server Pages (JSP)进行中文字符处理时,经常遇到的一个问题是中文字符显示为乱码。这主要是因为客户端与服务器端之间存在...

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

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

    关于处理中文乱码问题 Filter 代码

    虽然这个文件本身并不直接解决中文乱码问题,但其中的内容可以作为解决乱码问题的参考,因为它提供了Servlet API的详细指南,包括Filter的使用、HTTP请求和响应的处理等。 总结来说,处理中文乱码问题主要涉及到...

    中文乱码javaWEB开发各种解决中文乱码问题

    本文将详细探讨Java Web开发中解决中文乱码问题的策略,包括文件编码设置、页面编码控制、请求参数编码转换、过滤器应用以及GET请求特殊处理等。 #### 1. 文件编码设置 在Java Web项目中,确保所有文件(包括Java...

    java乱码问题解决方法

    Tomcat 5.5 中文乱码问题可以通过修改配置文件和使用 Filter 来解决。例如,可以在 web.xml 文件中添加以下代码: ```xml &lt;filter&gt; &lt;filter-name&gt;Set Character Encoding&lt;/filter-name&gt; &lt;filter-class&gt;filters....

    struts 中文乱码问题解决

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

    Servlet及jsp解决中文乱码问题

    ### Servlet及JSP解决中文乱码问题 #### 一、引言 在Web开发中,中文乱码问题一直是困扰开发者的一大难题。特别是在使用Java技术栈(如Servlet与JSP)进行开发时,如果处理不当,很容易出现中文字符显示乱码的情况...

    使用拦截器解决中文乱码

    Struts1通常通过在`web.xml`中配置Filter来解决中文乱码问题,但在Struts2中,由于其内置的过滤器(如`FilterDispatcher`)会先于自定义Filter执行,因此自定义Filter往往无法生效。 #### 解决方案:使用拦截器 ...

    jsp中文乱码问题解决

    jsp中文乱码问题解决 jsp中文乱码问题是jsp开发中常见的问题...jsp中文乱码问题可以通过修改jsp页面的编码方式、修改Tomcat的server.xml文件、编写Filter、使用jdk的native2ascii工具、配置数据库连接池等方法来解决。

    解决tomcat下中文乱码问题

    解决 Tomcat 下中文乱码问题 在本文中,我们将讨论如何解决 Tomcat 下中文乱码问题。该问题是由于 Tomcat 默认的字符编码设置不正确引起的。我们将通过设置 Connector 元素的 URIEncoding 属性和在过滤器中设置字符...

    解决servlet中文乱码问题1

    在解决servlet中文乱码问题1中,可以使用Filter来解决乱码问题。Filter可以在请求和响应之间进行处理,以确保字符编码的正确性。下面是一个简单的Filter实现: ```java public class EncodingFilter extends ...

Global site tag (gtag.js) - Google Analytics