/**
* 东北电力大学因特雷工作室版权所有
* 开发项目组:因特雷工作室JAVA组开发
* 网址:http://itl.nedu.edu.cn
* JAVA组QQ开发群:37523769
* 联系请注明!!!
* 谢谢您的使用!!!!!!!
* 文件创建时间:2009年 2009-12-18月 下午06:11:01日
*/
package com.amly.drp.util.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;
/**
* 类创建时间:2009年 2009-12-18月 下午06:11:01日
* @author Administrator
*
* Filter技术在servlet 2.3规范中加入的,大部分的jsp/servlet容器都支持
* Filter和AOP(Aspect Oriented Programming)面向切面的编程
* Filter体现了一个模式“责任链模式”
* Servlet体现了一个模式“模版方法模式”
* Filter其实提供了一种声明式服务,声明式服务非常强大,它具有可插拔的能力。
* Filter其实对Request和Response请求进行了拦截
* 只对post请求起作用
*/
public class CharsetEncodingFilter implements Filter {
private String encoding;
/* (non-Javadoc)
* @see javax.servlet.Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* 统一设置字符编码的Filter
*/
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
// TODO Auto-generated method stub
//设置字符集
servletRequest.setCharacterEncoding(this.encoding);
filterChain.doFilter(servletRequest, servletResponse);
}
/* (non-Javadoc)
* @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
*/
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
this.encoding = filterConfig.getInitParameter("encoding");
}
}
web.xml中的配置:
<filter>
<filter-name>CharsetEncodingFilter</filter-name>
<filter-class>com.amly.drp.util.filter.CharsetEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharsetEncodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>