<filter>
<filter-name>AutologinFilter</filter-name>
<filter-class>cn.itcast.filter.AutologinFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AutologinFilter</filter-name>
<!-- 因配置文件中默认的主页index.jsp,所访问根路径的时候,默认会跳转到主页上,所以,我们配置 url-pattern使用index.jsp -->
<url-pattern>/index.jsp</url-pattern>
</filter-mapping>
<!-- =======================过滤器配置=============================== -->
需求:请求参数在每一个servlet中单独中文乱码处理,代码重复


优化的思路,使用一个过滤器,在请求到达servlet之前,先对象request对象进行设置编码
要对所有的请求都要进行设置编码,都要拦截,进行增强,url-pattern:/*
过滤器代码:
package cn.itcast.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;
import javax.servlet.http.HttpServletResponse;
publicclass EncodingFilter implements Filter{
@Override
publicvoid init(FilterConfig filterConfig) throws ServletException {
}
@Override
publicvoid doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// 强制转换request response
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse res = (HttpServletResponse)response;
//处理响应乱码
res.setContentType("text/html;charset=utf-8");
//处理POST请求乱码
req.setCharacterEncoding("utf-8");
chain.doFilter(req, res);
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-47577-7.html
郑秀晶的鼻子
还美军保护地