1,以Post方式提交包含中文字符的表单
对于servlet加上:
request.setCharacterEncoding("GBK");
response.setContentType("text/html,charset=GBK");
对于jsp来说:
<%@ page=contentType="text/html;charset=GBK"%>
<% request.setCharacterEnconding="GBK" %>
2,以get方式提交包含中文字符的表单
get方式中的中文字符是包含在URL中的,不属于http请求的正文部分,采用setCharacterEncoding()的方式是没有作用的,需要用以下代码,将字符串按照指定的编码方式进行重新分配。
String param=request.getParameter("param");
param=new String (param.getBytes(),"GBK");
3,jsp文件的编码问题:
<%@ page pageEncoding="UTF-8" %>
4,使用过滤器解决中文乱码问题
如果每个jsp和servlet都加上上述的处理代码,就会显得冗余,使用过滤器就可以达到这样的效果:
doFilter{
if(request.getCharacterEncoding()==null){
request .setCharacterEncoding("UTF-8");
}
response.setContentType("text/html;charset=utf-8");
chain.doFilter(request,response);
}
过滤器配置:
web-xml:
主要的一步:
<url-pattern>/*</url-pattern>