EncodingFilter.java
package com.util;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
/**
* <p>Title: 字符编码集过滤</p>
*
* <p>Description:字符编码集过滤 </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: LEEMENZ</p>
*
* @version 1.0
*/
public abstract class EncodingFilter implements Filter{
//构造
public EncodingFilter()
{
config = null;
targetEncoding = "ASCII";
}
/**
*初始化过滤器,和一般的Servlet一样,它也可以获得初始参数。
*/
public void init(FilterConfig config)
throws ServletException
{
this.config = config;
targetEncoding = config.getInitParameter("encoding");
}
//销毁过滤器
public void destroy()
{
config = null;
targetEncoding = null;
}
/**
*进行过滤处理,这个方法最重要,所有过滤处理的代码都在此实现。
*/
public void doFilter(ServletRequest srequest, ServletResponse sresponse, FilterChain chain)
throws IOException, ServletException
{
HttpServletRequest request = (HttpServletRequest) srequest;
request.setCharacterEncoding(targetEncoding);
sresponse.setContentType("text/html;charset=UTF-8");//这里就是你要设置的字符集要改变就改这里。
chain.doFilter(srequest, sresponse); ///派发请求
}
private FilterConfig config;
private String targetEncoding;
}
下面添加到web.xml中:
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.util.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>filter</filter-name>
<url-pattern>/*</url-pattern> //这里是过滤本域下的所有页面
</filter-mapping>
这样处理的话基本上就可以解决问题了。
package com.util;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
/**
* <p>Title: 字符编码集过滤</p>
*
* <p>Description:字符编码集过滤 </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: LEEMENZ</p>
*
* @version 1.0
*/
public abstract class EncodingFilter implements Filter{
//构造
public EncodingFilter()
{
config = null;
targetEncoding = "ASCII";
}
/**
*初始化过滤器,和一般的Servlet一样,它也可以获得初始参数。
*/
public void init(FilterConfig config)
throws ServletException
{
this.config = config;
targetEncoding = config.getInitParameter("encoding");
}
//销毁过滤器
public void destroy()
{
config = null;
targetEncoding = null;
}
/**
*进行过滤处理,这个方法最重要,所有过滤处理的代码都在此实现。
*/
public void doFilter(ServletRequest srequest, ServletResponse sresponse, FilterChain chain)
throws IOException, ServletException
{
HttpServletRequest request = (HttpServletRequest) srequest;
request.setCharacterEncoding(targetEncoding);
sresponse.setContentType("text/html;charset=UTF-8");//这里就是你要设置的字符集要改变就改这里。
chain.doFilter(srequest, sresponse); ///派发请求
}
private FilterConfig config;
private String targetEncoding;
}
下面添加到web.xml中:
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.util.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>filter</filter-name>
<url-pattern>/*</url-pattern> //这里是过滤本域下的所有页面
</filter-mapping>
这样处理的话基本上就可以解决问题了。