structs中文乱码处理----filter

来源:互联网 发布:宏程序 刀具寿命 编程 编辑:程序博客网 时间:2024/05/16 06:37

                                                         structs中文乱码处理----filter

方案一:

写一个MyActionServlet,并覆盖掉ActionServlet的process方法:

  1. package com.web;   
  2.   
  3. import java.io.IOException;   
  4.   
  5. import javax.servlet.ServletException;   
  6. import javax.servlet.http.HttpServletRequest;   
  7. import javax.servlet.http.HttpServletResponse;   
  8.   
  9. import org.apache.struts.action.ActionServlet;   
  10.   
  11. public class MyActionServlet extends ActionServlet {   
  12.     @Override  
  13.     protected void process(HttpServletRequest request,   
  14.             HttpServletResponse response) throws IOException, ServletException {   
  15.         // TODO Auto-generated method stub   
  16.         response.setCharacterEncoding("utf-8");   
  17.         request.setCharacterEncoding("utf-8");   
  18.         super.process(request, response);   
  19.     }   

 配置文件web.xml

<filter> 
   <filter-name>Set Character Encoding</filter-name> 
   <filter-class>com.baihe.story.util.GbkActionSerlvet</filter-class> 
   <init-param> 
    <param-name>encoding</param-name> 
    <param-value>utf-8</param-value> 
   </init-param> 
 </filter> 
  
 <filter-mapping> 
    <filter-name>Set Character Encoding</filter-name> 
    <url-pattern>/*</url-pattern> 
  </filter-mapping> 
  </filter-mapping>

 方案二:写一个过滤器,对所有请求进行过滤

  1. package com.web;   
  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. public class SetCharacterEncodingFilter implements Filter {   
  13.     
  14.  private String encoding;   
  15.  private FilterConfig filterConfig = null;   
  16.     
  17.  public void destroy() {   
  18.   this.encoding = null;   
  19.   this.filterConfig = null;   
  20.   
  21.  }   
  22.   
  23.  public void doFilter(ServletRequest request, ServletResponse response,   
  24.    FilterChain chain) throws IOException, ServletException {   
  25.   request.setCharacterEncoding(this.encoding);   
  26.   chain.doFilter(request, response);   
  27.  }   
  28.   
  29.  public void init(FilterConfig filterConfig) throws ServletException {   
  30.   this.encoding = filterConfig.getInitParameter("encoding");   
  31.  }   
  32.   

 配置文件web.xml

Xml代码 复制代码
  1. <filter>  
  2.   <filter-name>Set Character Encoding</filter-name>  
  3.   <filter-class>com.web.SetCharacterEncodingFilter</filter-class>  
  4.   <init-param>  
  5.    <param-name>encoding</param-name>  
  6.    <param-value>utf-8</param-value>  
  7.   </init-param>  
  8.  </filter>  
  9.   
  10.  <filter-mapping>  
  11.   <filter-name>Set Character Encoding</filter-name>  
  12.   <url-pattern>/*</url-pattern>  
  13.  </filter-mapping>  
  14.   </filter-mapping> 
原创粉丝点击