转自:http://caleb-520.iteye.com/blog/396037

利用过滤器进行中文转码

博客分类:
Xml代码  利用过滤器进行中文转码(转)
  1. <filter>  
  2.     <filter-name>CharactsetConversion</filter-name>  
  3.     <filter-class>com.gxa.edu.servlet.CharactsetConversion</filter-class>  
  4.           
  5.     <init-param>  
  6.         <param-name>flag</param-name>  
  7.         <param-value>true</param-value>  
  8.     </init-param>  
  9.           
  10.     <init-param>  
  11.         <param-name>charcode</param-name>  
  12.         <param-value>gb2312</param-value>  
  13.     </init-param>  
  14.           
  15. </filter>  
  16.       
  17. <filter-mapping>  
  18.       <!-- 配置需要过滤的URL,这里主要是对所有的文件进行过滤 -->  
  19.     <filter-name>CharactsetConversion</filter-name>  
  20.     <url-pattern>/*</url-pattern>  
  21. </filter-mapping>  


当配置好web.xml文件后,就创建一个过滤器类,名称CharactsetConversion,该类必须实现Filter接口,同时Filter接口提供了3个方法 
(1)void doFilter(ServletRequest req,ServletResponse res,FilterChain filterChain) 
(2)void init(FilterConfig filterConfig) 
(3)void destroy() 

(2)创建一个CharactsetConversion.java文件,该文件了实现Filter接口 
Java代码  利用过滤器进行中文转码(转)
  1. package com.gxa.edu.servlet;  
  2.   
  3. import javax.servlet.Filter;  
  4. import javax.servlet.FilterChain;  
  5. import javax.servlet.FilterConfig;  
  6. import javax.servlet.ServletRequest;  
  7. import javax.servlet.ServletResponse;  
  8.   
  9. public class CharactsetConversion implements Filter{  
  10.     private FilterConfig filterConfig = null;  
  11.     private boolean flag = true;  
  12.     private String charcode = "gb2312";  
  13.   
  14.     public void init(FilterConfig filterConfig) {  
  15.         this.filterConfig = filterConfig;  
  16.         String temp = this.filterConfig.getInitParameter("flag");  
  17.         String str = this.filterConfig.getInitParameter("charcode");  
  18.         if(temp != null){  
  19.             if(temp.equals("true")){  
  20.                 this.flag = true;  
  21.             }else if(temp.equals("false")){  
  22.                 this.flag = false;  
  23.             }else{  
  24.                 this.flag = true;  
  25.             }  
  26.         }  
  27.         if(str != null){  
  28.             this.charcode = str;  
  29.         }  
  30.     }  
  31.     public void doFilter(ServletRequest request,ServletResponse response,FilterChain filterChain) {  
  32.         try {  
  33.             if (flag) {  
  34.                 String c = request.getCharacterEncoding();  
  35.                 if (c == null) {  
  36.                     request.setCharacterEncoding(charcode);  
  37.                 } else if (!c.equals(this.charcode)) {  
  38.                     request.setCharacterEncoding(charcode);  
  39.                 }  
  40.             }  
  41.             filterChain.doFilter(request, response);  
  42.         } catch (Exception e) {  
  43.             e.printStackTrace();  
  44.         }  
  45.     }  
  46.     public void destroy() {  
  47.         this.filterConfig = null;  
  48.     }  
  49. }  

相关文章:

  • 2022-01-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-10
  • 2022-12-23
  • 2022-12-23
  • 2021-06-21
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-10-25
  • 2021-07-28
  • 2021-10-12
  • 2021-07-21
  • 2022-02-03
相关资源
相似解决方案