运行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();
}

}
运行结果是:?????
...全文
114 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
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();加了编码格式的啊
  • 打赏
  • 举报
回复

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中的设置编码。等等。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧