从jsp页面中传递到servlet中的值经常出现乱码问题
问题描述
1:jsp页面设置了编码格式为utf-8
2:servlet页面也设置了utf-8
3:工作空间也设置了utf-8
4:但是从jsp页面传递到servlet页面的值还是出现中文乱码
ps:传递的值为英文时一般不会出现乱码
统一的解决方法:设置编码格式的filter.
1:创建EncodingFilter,用于统一项目的编码格式
2:encodingFilter内容如下:
public class EncodingFilter1 implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// 设置请求码
request.setCharacterEncoding("utf-8");
//设置响应码
response.setCharacterEncoding("utf-8");
// 处理响应乱码
response.setContentType("text/html;charset=utf-8");
chain.doFilter(request, response);
}
public void destroy() {
}
}
ps:tomcat7.0以上的直接在创建的时候配置Filter mappings,如下图所示:设置为/*,最后点击finish即可

tomcat7.0及7.0以下的在web.xml中配置如下所示:
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>cn.itcast.itcaststore.web.filter.EncodingFilter1</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

当从jsp页面传递到servlet的值出现中文乱码时,即使页面和工作空间都设置为UTF-8,仍可能出现问题。解决方法是通过创建一个EncodingFilter来统一项目编码,将过滤器映射到/*,确保所有请求都经过编码处理,从而避免中文乱码。

1174

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



