我在学Servlet的时候,先写了一个WebLogin.java的Servlet,处理doGet和doPost。代码如下:
public class WebLogin extends HttpServlet{
public void doGet(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>");
out.println("<Title>Web Login</Title>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("<form method=\"post\" action=\"/myapp/WebLogin\">");
out.println("用户名:<input type='text' name='username'><br>");
out.println("密码:<input type='password' name='password'><br>");
out.println("<input type='submit' name='submit' value='提交'>");
out.println("<input type='reset' name='reset' value='重置'>");
out.println("</form>");
out.println("</BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
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>");
out.println("<Title>Web Login</Title>");
out.println("</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();
}
}
能处理中文的问题。我又重新写了个Servlet,Login.java,只处理doPost。同时把doGet的部分用login.htm取代了。代码如下:
Login.java :
public class Login extends HttpServlet{ 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>");
out.println("<Title>Login</Title>");
out.println("</HEAD>");
out.println("<BODY>");
request.setCharacterEncoding("utf-8");
out.println("用户名:"+request.getParameter("username")+"<br>");
out.println("密码:"+request.getParameter("password")+"<br>");
out.println("</BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
}
login.htm :
<HTML>
<HEAD>
<Title>Login</Title>
</HEAD><BODY><form method="post" action="/myapp/Login">
<table width=50% border="1">
<tr>
<td width=30%>用户名:</td>
<td width=70%><input type='text' name='username'></td>
</tr>
<tr>
<td width=30%>密码:</td>
<td width=70%><input type='password' name='password'></td>
</tr>
<tr>
<td ></td>
<td ><input type='submit' name='submit' value='提交'>
<input type='reset' name='reset' value='重置'>
</td>
</tr>
</table>
</form></BODY></HTML>
这时候就不能处理中文问题了,请问这是怎么回事?
public class WebLogin extends HttpServlet{
public void doGet(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>");
out.println("<Title>Web Login</Title>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("<form method=\"post\" action=\"/myapp/WebLogin\">");
out.println("用户名:<input type='text' name='username'><br>");
out.println("密码:<input type='password' name='password'><br>");
out.println("<input type='submit' name='submit' value='提交'>");
out.println("<input type='reset' name='reset' value='重置'>");
out.println("</form>");
out.println("</BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
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>");
out.println("<Title>Web Login</Title>");
out.println("</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();
}
}
能处理中文的问题。我又重新写了个Servlet,Login.java,只处理doPost。同时把doGet的部分用login.htm取代了。代码如下:
Login.java :
public class Login extends HttpServlet{ 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>");
out.println("<Title>Login</Title>");
out.println("</HEAD>");
out.println("<BODY>");
request.setCharacterEncoding("utf-8");
out.println("用户名:"+request.getParameter("username")+"<br>");
out.println("密码:"+request.getParameter("password")+"<br>");
out.println("</BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
}
login.htm :
<HTML>
<HEAD>
<Title>Login</Title>
</HEAD><BODY><form method="post" action="/myapp/Login">
<table width=50% border="1">
<tr>
<td width=30%>用户名:</td>
<td width=70%><input type='text' name='username'></td>
</tr>
<tr>
<td width=30%>密码:</td>
<td width=70%><input type='password' name='password'></td>
</tr>
<tr>
<td ></td>
<td ><input type='submit' name='submit' value='提交'>
<input type='reset' name='reset' value='重置'>
</td>
</tr>
</table>
</form></BODY></HTML>
这时候就不能处理中文问题了,请问这是怎么回事?
想用WebLogin来处理,可是还是不能处理中文问题?是不是要在htm中做什么处理啊?
请问这句该加载htm的哪儿?
你接收传过来的参数的时候进行一下编码request.setCharactEncoding("utf-8");
response.setContentType("text/html;charset=utf-8"):
试试方法名也许有点不对,呵呵,你.出来就是的了
原来utf-8不行,全换为gb2312就可以了
郁闷,utf-8怎么不行呢。
可是我写的第一个WebLogin.java里全用的是utf-8啊,那里怎么就全行了呢
但是自己编辑的jsp就必须在utf-8环境下编辑