运行servlet 出现乱码了?

tongxingzhen123 2010-10-24 10:22:40
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class webexampleservlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;chatset=utf-8");
doPost(request,response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html;chatset=utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
request.setCharacterEncoding("utf-8");
out.println("名字:"+request.getParameter("name")+"<br>");
out.println("邮箱:"+request.getParameter("email")+"<br>");
out.println("年龄:"+request.getParameter("age")+"<br>");
out.println("编程时间:"+request.getParameter("time")+"<br>");
String system[]=request.getParameterValues("system");
out.println("操作系统");
for(int i=0;i<system.length;i++)
out.println("<li>"+system[i]+"</li>");
out.println("<br>");
String lanager[]=request.getParameterValues("lanager");
out.println("操作语言");
for(int i=0;i<lanager.length;i++)
out.println("<li>"+lanager[i]+"</li>");
out.println("<br>");
out.println("留言:"+request.getParameter("code")+"<br>");
out.println("我");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}

}
运行结果是:?????
...全文
68 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hanlong369 2010-10-25
你仔细检查一下吧 看看 编码格式
回复
tongxingzhen123 2010-10-24
[Quote=引用 10 楼 magong 的回复:]
引用楼主 tongxingzhen123 的回复:
response.setContentType("text/html;chatset=utf-8");

response.setContentType("text/html;charset=UTF-8");
[/Quote]我的天呐 错在这里
回复
magong 2010-10-24
[Quote=引用楼主 tongxingzhen123 的回复:]
response.setContentType("text/html;chatset=utf-8");
[/Quote]
response.setContentType("text/html;charset=UTF-8");
回复
tongxingzhen123 2010-10-24
[Quote=引用 7 楼 magong 的回复:]
前面提交form的那个页面中要有

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
[/Quote]这个我用dreamweaver 8做的 里面也有这句话
回复
magong 2010-10-24
Servlet出的页面中也要有
回复
magong 2010-10-24
前面提交form的那个页面中要有

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
回复
tongxingzhen123 2010-10-24
[Quote=引用 4 楼 ghsau 的回复:]
Java code

request.setCharacterEncoding("utf-8");
/**
*这种方式只对POST请求好使,对GET请求就不灵了,GET请求应该用下面这个
*String name = new String(name.getBytes("ISO-8859-1"),"UTF-8");
*/


希望对LZ有帮助!
[/Quote]我在form里的method就是post的
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="/web0.4/servlet/webexampleservlet">
<table width="418" border="0" align="left">
<tr>
<td width="115" align="right">姓名</td>
<td width="293"><label>
<input name="name" type="text" id="name" />
</label></td>
</tr>
<tr>
<td align="right">邮箱</td>
<td><label>
<input name="email" type="text" id="email" />
</label></td>
</tr>
<tr>
<td align="right">年纪</td>
<td><label>
<input type="radio" name="age" value="1-10" />
1-10
</label>
<label>
<input type="radio" name="age" value="11-50" />
</label>
<label>
11-50
<input type="radio" name="age" value="50-80" />
50-80 </label>
<label>
<input name="age" type="radio" value="80-800" checked="checked" />
80-800</label></td>
</tr>
<tr>
<td align="right">编程时间</td>
<td><label>
<select name="time" size="1" id="time">
<option value="一年" selected="selected">一年</option>
<option value="二年">二年</option>
</select>
</label></td>
</tr>
<tr>
<td align="right">使用的操作系统</td>
<td><label>
<select name="system" size="3" multiple="multiple" id="system">
<option value="xp">windows xp</option>
<option value="2000">2000</option>
<option value="2003">2003</option>
</select>
</label></td>
</tr>
<tr>
<td align="right">使用的编程语言</td>
<td><label>
<input name="lanager" type="checkbox" id="lanager" value="c" checked="checked" />
c
</label>
<label>
<input name="lanager" type="checkbox" id="lanager" value="c++" />
c++ </label>
<label>
<input name="lanager" type="checkbox" id="lanager" value="java" />
java </label>
<label>
<input name="lanager" type="checkbox" id="lanager" value="c#" />
c#</label></td>
</tr>
<tr>
<td align="right">留言</td>
<td><label>
<textarea name="code" rows="5" id="code"></textarea>
</label></td>
</tr>
<tr>
<td align="right"><label>
<input type="submit" name="Submit" value="提交" />
</label></td>
<td><label>
<input type="reset" name="Submit2" value="重置" />
</label></td>
</tr>
</table>
</form>
</body>
</html>
回复
lingfeng179 2010-10-24
你在out.println();加了编码格式的啊
回复
他山之石头 2010-10-24

request.setCharacterEncoding("utf-8");
/**
*这种方式只对POST请求好使,对GET请求就不灵了,GET请求应该用下面这个
*String name = new String(name.getBytes("ISO-8859-1"),"UTF-8");
*/

希望对LZ有帮助!
回复
tongxingzhen123 2010-10-24
都加了这request.setCharacterEncoding("utf-8");句话了 怎么还出错呢?
回复
tongxingzhen123 2010-10-24
[Quote=引用 1 楼 closewbq 的回复:]
别的都没有输出,就输出个?????
[/Quote]中文的就输出???其他的都正常
回复
closewbq 2010-10-24
别的都没有输出,就输出个?????
回复
licip 2010-10-24
乱码的问题有很我的地方可能会影起。页面,提交的方式,servlet中的设置编码。等等。
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-10-24 10:22
社区公告
暂无公告