用来POST方法汉字解码的过滤器
用于POST方法汉字解码的过滤器
过滤器中Filter:
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; import javax.servlet.http.HttpServletRequest; /** * 用于POST方法汉字解码的过滤器 * 使用后所有的POST提交的Servlet都无需解码 * @author miao * */ public class SetEncodingFilter implements Filter { String code = null; public void init(FilterConfig config) throws ServletException { //从init-param中得到所需的编码 code = config.getInitParameter("code"); if (code == null) { //默认设置成utf-8 code = "utf-8"; } } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; request.setCharacterEncoding(code); filterChain.doFilter(req, resp); } public void destroy() { code = null; } }
在web.xml中的配置:
<filter> <display-name>汉字的解码器</display-name> <filter-name>SetEncodingFilter</filter-name> <filter-class>filter.SetEncodingFilter</filter-class> <init-param> <param-name>code</param-name> <param-value>GBK</param-value> </init-param> </filter> <filter-mapping> <filter-name>SetEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>