servlet乱码问题

来源:互联网 发布:域名服务器dns中存放 编辑:程序博客网 时间:2024/06/11 04:17
请求时乱码:
浏览器用utf8打开页面,就用utf8传送数据
tomcat默认使用IOS8859-1解码,没有中文,所以乱码
对于post请求:
request.setCharacterEncoding("utf-8");
该方法适用于参数在请求实体中的情况
对于get请求:
String name = request.getParameter("name");
byte[] bs = name.getBytes("IOS8859-1");
name = new String(bs,"utf-8");

可以在web.xml中配置
<servlet>
<servlet-name>Test05_login</servlet-name>
<servlet-class>serv.Test05_login</servlet-class>
<init-param>
<param-name>encode</param-name>
<param-value>utf-8</param-value>
</init-param>
</servlet>
在代码中获得:
String encode = this.getServletConfig().getInitParameter("encode");
响应时乱码:
response.setContentType("text/html;charset=UTF-8"); 
response.getWriter().write("登陆成功");