我正在尝试使用 httpClient 进行登录验证并在服务器端获得无限循环。更多解释将在代码之后进行。这是我的服务器端代码
public void doPost(HttpServletRequest req, HttpServletResponse resp)
while(true){
String user_name = req.getParameter("username");
String password = req.getParameter("password");
System.out.println("User name and password is "+user_name +" paswword is "+password);
resp.setContentType("text/plain");
PrintWriter writer = resp.getWriter();
if(user_name.equalsIgnoreCase("haseeb")){
System.out.println("valid user name");
writer.write("welcome");
//writer.flush();
break;
}
else{
writer.write("unknown User");
System.out.println("unknown user name");
writer.flush();
continue;
}
}//End of while loop
} //End of doPost Method
从客户端我尝试登录,如果登录无效,服务器将返回“unknownUser”,之后客户端将再次发送登录请求,如果登录有效,循环将中断。在服务器端,我遇到无限循环,服务器正在一次又一次地处理第一个请求参数....!!!如果有人希望我可以发布我的客户端代码以获得进一步帮助,您可以在评论部分索取。谢谢
最佳答案
问题出在 else
block 中的 continue
上。它也应该是break
。然而,更好的编写方法是不使用 while
循环。例如
public void doPost(HttpServletRequest req, HttpServletResponse resp)
String user_name = req.getParameter("username");
String password = req.getParameter("password");
System.out.println("User name and password is "+user_name +" paswword is "+password);
resp.setContentType("text/plain");
PrintWriter writer = resp.getWriter();
if(user_name.equalsIgnoreCase("haseeb")){
System.out.println("valid user name");
writer.write("welcome");
writer.flush();
}
else{
writer.write("unknown User");
System.out.println("unknown user name");
writer.flush();
}
} //End of doPost Method
关于java - 在 HttpClient 类中同步请求和响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12707158/