从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>
扫描二维码关注公众号,回复:
4278983 查看本文章
![](/qrcode.jpg)