代码如下:
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 SetCharacterEncodingFilter implements Filter {
private FilterConfig filterConfig;
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//读取指定的参数
String encoding = filterConfig.getInitParameter("encoding");
if(encoding==null){
//没有配置参数,给一个默认值
encoding = "UTF-8";
}
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
response.setContentType("text/html;charset="+encoding);
chain.doFilter(request, response);
}
public void destroy() {
}
}
web.xml配置如下:
<filter>
<filter-name>SetCharacterEncodingFilter</filter-name>
<filter-class>com.itheima.filter.SetCharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
设置字符编码过滤器

本文介绍了一个用于设置请求和响应字符编码的Java Servlet过滤器。该过滤器通过读取配置参数来确定编码方式,默认使用UTF-8。在web.xml中进行了配置,确保所有请求都经过此过滤器。
1995

被折叠的 条评论
为什么被折叠?



