大家好,最近在学习孙老师的,在动手实验第9章会话跟踪中的程序的时候发现一个问题。
我将out.println("");
这行语句中的method改为get后,无论如何都取不到ac这个参数的值了,调试发现总是为null .
请问这是为什么呢?
[code="java"]
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("user");
String password = request.getParameter("password");
String action = request.getParameter("ac");
if("chk".equals(action))
{
if("lwm".equals(username)&&"123456".equals(password))
{
StringBuilder sb = new StringBuilder();
sb.append("username=") ;
sb.append(username) ;
sb.append("&password=") ;
sb.append(password);
Cookie cookie = new Cookie("userinfo",sb.toString());
//设置cookie的最大生存时间,以秒为单位,如果要删除cookie,可以将时间设为0,如果时间值是负数,那么当客户端的
//浏览器关闭的时候,cookie将被删除,只要设置的时间值是正数,Cookie将会被保存到客房机器上的硬盘中。
cookie.setMaxAge(1800) ;
response.addCookie(cookie);
response.sendRedirect("greet2");
return ;
}
else
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("用户名或者密码错误,请<a href=login2>重新输入");
out.close() ;
return ;
}
}
else
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println(" <HEAD><TITLE>登录页面</TITLE></HEAD>");
out.println(" <BODY>");
out.println("<form action=login2?ac=chk method=post>");
out.println("<table>");
out.println("<tr>");
out.println("<td>请输入用户名</td>");
out.println("<td><input type=text name=user></td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>请输入密码</td>");
out.println("<td><input type=password name=password></td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td><input type=submit value=提交></td>");
out.println("<td><input type=reset value=重置></td>");
out.println("</tr>");
out.println("</table>");
out.println("</form>");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
}
[/code]