关于Java Servlet 的编码的问题!

我用MYEclipse编一个输入用户名和密码的程序,用Servlet实现得到该用户名和密码,并用浏览器浏览,通过jsvalidation来验证,运行之后输入英文字母可以实... 我用MYEclipse编一个输入用户名和密码的程序,用Servlet实现得到该用户名和密码,并用浏览器浏览,通过jsvalidation来验证,运行之后输入英文字母可以实现,但是不能输入中文……html文件为login.html;servlet为loginservlet.java……

login.html代码如下:
<!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=gb2312" />
<title>无标题文档</title>
</head>

<body>
<script language="javascript" src="/webproject/js/validation-framework.js"></script>
<p>请输入用户名和密码:</p>
<form id="form1" name="form1" method="post" action="/webproject/servlet/login" onsubmit="return doValidate(this)">
<table width="232" border="0">
<tr>
<th width="77" scope="row">用户名:</th>
<td width="145"><label>
<input name="username" type="text" id="username" size="18" maxlength="20" />
</label></td>
</tr>
<tr>
<th scope="row">密码:</th>
<td><input name="password" type="password" id="password" size="18" maxlength="20" /></td>
</tr>
<tr>
<th scope="row"><label>
<input type="submit" name="Submit" value="提交" />
</label></th>
<td><label>
<input name="reset" type="reset" id="reset" value="重置" />
</label></td> </tr> </table></form><p>  </p></body></html>

loginservlet.java代码如下:

package com.sheshe;
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 LoginServlet extends HttpServlet {

private static final long serialVersionUID = -6488843091690538218L;

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

response.setContentType("text/html;charset=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("input username:"+request.getParameter("username")+"<br>");
out.println("input password:"+request.getParameter("password")+"<br>");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
}
展开
 我来答
断了的弦777
2009-09-20 · TA获得超过423个赞
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:254万
展开全部
html页面的编码和servlet的编码不一致,解析出来一定不是你想要的结果
你将request.setChraterEncoding("utf8") 改成request.setChraterEncoding("gb2312")试试
如果不行那就这样做:
String username = request.getParameter("username");
username = username.getBytes("gb2312","utf-8");
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友06fd97b
2009-09-19 · TA获得超过221个赞
知道小有建树答主
回答量:681
采纳率:0%
帮助的人:241万
展开全部
你在jsp页面用的gb2312,但你在quest里面用的utf-8,你改成response.setContentType("text/html;charset=gb2312")试一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaishui106
2009-09-19 · TA获得超过819个赞
知道答主
回答量:124
采纳率:0%
帮助的人:67.5万
展开全部
request设置的格式必须和请求的页面(也就是login.html)的编码格式一样 GBK 或 UTF-8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-09-19
展开全部
request.setCharacterEncoding("utf-8");
改成request.setCharacterEncoding("gb2312");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
50456191
2009-09-21 · 超过29用户采纳过TA的回答
知道答主
回答量:125
采纳率:0%
帮助的人:0
展开全部
英文可以,中文应该是乱码了吧

参考资料: 如果您的回答是从其他地方引用,请表明出处

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式