jsp中文乱码的Filter过滤器配置

XML code
 
   
< filter >
< filter-name > encoding </ filter-name >
< filter-class >
filter.FilterEncoding
</ filter-class >
< init-param >
< param-name > encoding </ param-name >
< param-value > gbk </ param-value >
</ init-param >
</ filter >
Java code
 
   
package  filter;
import  java.io.IOException; 
import  javax.servlet.Filter; 
import  javax.servlet.FilterChain; 
import  javax.servlet.FilterConfig; 
import  javax.servlet.ServletException; 
import  javax.servlet.ServletRequest; 
import  javax.servlet.ServletResponse; 
public   class  FilterEncoding  implements  Filter 

protected String encoding;          // 接收字符编码
 protected boolean ignore;            // 是否忽略大小写
 protected FilterConfig filterConfig; // 初始化配置
public void init(FilterConfig filterConfig) throws ServletException 
{
// 从web.xml文件中读取encoding的值
  encoding = filterConfig.getInitParameter("encoding"); 
// 从web.xml文件中读取ignore的值
  String value = filterConfig.getInitParameter("ignore"); 
// 以下三种情况均为忽略大小写
  if(value == null

ignore 
= true
}

else if(value.equalsIgnoreCase("yes")) 

ignore 
= true
}
 
else if(value.equalsIgnoreCase("true")) 

ignore 
= true
}
 
}
 
// doFilter方法
 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException 
{
if(ignore || request.getCharacterEncoding() == null
{
// 如果为空先从web.xml中得到
   String encoding = selectEncoding(request); 
if(encoding != null
{
// 设置字符集编码
    request.setCharacterEncoding(encoding); 
}

}

// 继续执行
  chain.doFilter(request, response); 
}
 
// 得到字符编码
 private String selectEncoding(ServletRequest request) 

return encoding; 
}
 
public void destroy() 

}
 
}
如果是url的get提交参数带中文的 
可以改下面这个文件,加入一个URIEncoding="GBK" 
X:\Tomcat 5.5\conf\Server.xml 
  
< Connector 
        
port ="8080"  
        redirectPort
="8443"  
        minSpareThreads
="25"  
        connectionTimeout
="30"  
        maxThreads
="150"  
        maxSpareThreads
="75"  
URIEncoding
="GBK" >  

jsp头文件

HTML code
 
   
<% @ page contentType="text/html;charset=gbk" %>
   //此处的charset的值要和web.xml里的   <param-value> </param-value>值一样

转载于:https://www.cnblogs.com/zhuboxingzbx/articles/1208118.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值