中文过滤器的代码:
package org.ty.struts.util;//所在包体
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;
import javax.servlet.http.HttpServletRequest;//如上为所用到的类
//中文过滤器 三个方法,一个属性
public class PageEncodingFilter implements Filter {
private String encode;
//初始化,encoding初始值从“web.xml”而来
public void init(FilterConfig arg0) throws ServletException {
this.encode=arg0.getInitParameter("encoding");
}
//执行过滤
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)arg0;//强转HttpServletRequest
request.setCharacterEncoding(encode);//参数encode即为 String,切勿再加"双引号"
arg2.doFilter(arg0, arg1);
}
//销毁
public void destroy() {
this.encode=null;
}
}
说明:
//创建步骤:
1.新建 class 实现 接口 Filter (所在包为 带有“javax.servlet.Filter”,依“MyEclips”版本不同,略有不同);
2.修改代码如上即可;
3.打开“web.xml”文件进行 如下配置。
配置代码:
<!-- 中文过滤器初始化参数设置 -->
<filter>
<filter-name>PageEncodingFilter</filter-name><!--过滤器的名字-->
<filter-class>org.ty.struts.util.PageEncodingFilter</filter-class><!--过滤器文件所在位置-->
<init-param>
<param-name>encoding</param-name><!--初始参数名,指定jsp页面所用 编码集-->
<param-value>utf-8</param-value><!--初始参数值 ,指定中文编码集-->
</init-param>
</filter>
<!-- 过滤器 映射路径配置 -->
<filter-mapping>
<filter-name>PageEncodingFilter</filter-name>
<url-pattern>/*</url-pattern><!-- 对所有目录进行中文过滤 -->
</filter-mapping>
空谷注:
神神秘秘的 中文过滤,不过如此,从servlet开始就一直“犹抱琵琶半遮面”,而今方识美人面,从此中文再不乱。
2009年8月25日17:22:13