jsp输出中文页面乱码,中文提交后文本框里乱码,后台中文变乱码,全解决

一个过滤器,jsp输出中文页面乱码,中文提交后文本框里乱码,后台中文变乱码全部搞定

过滤器为下:

FilterEncoding

Java代码   收藏代码
  1. package struts.form;  
  2.   
  3. import java.io.IOException;   
  4. import javax.servlet.Filter;   
  5. import javax.servlet.FilterChain;   
  6. import javax.servlet.FilterConfig;   
  7. import javax.servlet.ServletException;   
  8. import javax.servlet.ServletRequest;   
  9. import javax.servlet.ServletResponse;   
  10. public class FilterEncoding implements Filter   
  11. {   
  12.   
  13.  protected String encoding;          // 接收字符编码  
  14.  protected boolean ignore;            // 是否忽略大小写  
  15.  protected FilterConfig filterConfig; // 初始化配置  
  16.   
  17.  public void init(FilterConfig filterConfig) throws ServletException   
  18.  {  
  19.   // 从web.xml文件中读取encoding的值  
  20.   encoding = filterConfig.getInitParameter("encoding");   
  21.   // 从web.xml文件中读取ignore的值  
  22.   String value = filterConfig.getInitParameter("ignore");   
  23.   // 以下三种情况均为忽略大小写  
  24.   if(value == null)   
  25.   {   
  26.    ignore = true;   
  27.   }  
  28.   else if(value.equalsIgnoreCase("yes"))   
  29.   {   
  30.    ignore = true;   
  31.   }   
  32.   else if(value.equalsIgnoreCase("true"))   
  33.   {   
  34.    ignore = true;   
  35.   }   
  36.  }   
  37.  // doFilter方法  
  38.  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException   
  39.  {  
  40.   if(ignore || request.getCharacterEncoding() == null)   
  41.   {  
  42.    // 如果为空先从web.xml中得到  
  43.    String encoding = selectEncoding(request);   
  44.    if(encoding != null)   
  45.    {  
  46.     // 设置字符集编码  
  47.     request.setCharacterEncoding(encoding);   
  48.    }  
  49.   }  
  50.   // 继续执行  
  51.   chain.doFilter(request, response);   
  52.  }   
  53.  // 得到字符编码  
  54.  private String selectEncoding(ServletRequest request)   
  55.  {   
  56.   return encoding;   
  57.  }   
  58.  public void destroy()   
  59.  {   
  60.     
  61.  }   
  62. }  



web.xml里配置

Xml代码   收藏代码
  1. <filter>  
  2.  <filter-name>encoding</filter-name>  
  3.  <filter-class>  
  4.   struts.form.FilterEncoding  
  5.  </filter-class>  
  6.  <init-param>  
  7.   <param-name>encoding</param-name>  
  8.   <param-value>gbk</param-value>  
  9.  </init-param>  
  10. </filter>  
  11. <filter-mapping>  
  12.  <filter-name>encoding</filter-name>  
  13.  <url-pattern>/*</url-pattern>  
  14. </filter-mapping>  

jsp头文件

Html代码   收藏代码
  1. <%@ page contentType="text/html;charset=gbk"%>  
   //此处的charset的值要和web.xml里的  <param-value></param-value>值一样

这样就可以在jsp输入汉字不是乱码了

如果是url的get提交参数带中文的
可以改下面这个文件,加入一个URIEncoding="GBK"
X:\Tomcat 5.5\conf\Server.xml
Xml代码   收藏代码
  1. <Connector   
  2.        port="8080"   
  3.        redirectPort="8443"   
  4.        minSpareThreads="25"   
  5.        connectionTimeout="30"   
  6.        maxThreads="150"   
  7.        maxSpareThreads="75"   
  8. RIEncoding="GBK">   

原文地址:http://heisetoufa.iteye.com/blog/227162

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值