Java 布尔表达式,doPost servlet返回的游戏太多
Java 布尔表达式,doPost servlet返回的游戏太多,java,html,json,servlets,boolean,Java,Html,Json,Servlets,Boolean,doPost正在返回游戏时间超过5分钟的游戏,即使我在HTML表单中输入了最大5分钟的参数。为什么?我不知道。我已经打印出了布尔表达式中使用的所有参数,以查看它们是否包含正确的值,并且它们似乎是这样做的。以下是该打印的示例: 信息:拥有:虚假minPlayers:3 chosenPlayers:1 maxPlayers:6 chosenPlaytime:5游戏时间:90信息:拥有:真实玩家:2 chosenPlayers:1名maxPlayers:-1名chosenPlaytime:5名游戏时间
doPost
正在返回游戏时间超过5分钟的游戏,即使我在HTML表单中输入了最大5分钟的参数。为什么?我不知道。我已经打印出了布尔表达式中使用的所有参数,以查看它们是否包含正确的值,并且它们似乎是这样做的。以下是该打印的示例:
信息:拥有:虚假minPlayers:3 chosenPlayers:1 maxPlayers:6
chosenPlaytime:5游戏时间:90信息:拥有:真实玩家:2
chosenPlayers:1名maxPlayers:-1名chosenPlaytime:5名游戏时间:-1名信息:
拥有:假minPlayers:2 chosenPlayers:1 maxPlayers:6
chosenPlaytime:5游戏时间:90信息:拥有:虚假玩家:1
chosenPlayers:1个maxPlayers:1个chosenPlaytime:5个游戏时间:50个信息:
拥有:假minPlayers:-1名chosenPlayers:1名maxPlayers:-1名
chosenPlaytime:5游戏时间:-1信息:拥有:真实玩家:2
游戏时间:5游戏时间:30
这是我的代码:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//processRequest(request, response);
String players = request.getParameter("players");
String playtime = request.getParameter("playtime");
int chosenPlayers = Integer.parseInt(players);
int chosenPlaytime = Integer.parseInt(playtime);
URL url = new URL("http://bgg-json.azurewebsites.net/collection/Dan%20Xxxxxxx"); //hidden by me now
URLConnection yc = url.openConnection();
try (BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()))) {
String inputLine = null;
String result = "{\"boardgames\":";
while ((inputLine = in.readLine()) != null) {
result = result + inputLine;
}
result = result + ", \"responseStatus\": 200}";
JSONTokener tokener = new JSONTokener(result);
JSONObject joRoot = (JSONObject) tokener.nextValue();
JSONArray jarr = joRoot.getJSONArray("boardgames");
int numberOfBoardgames = jarr.length();
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet BGGCollectionServlet</title>");
out.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"BGGCollection.css\" />");
out.println("</head>");
out.println("<body>");
for (int i = 0; i < numberOfBoardgames; i++) {
JSONObject jObject = jarr.getJSONObject(i);
Boolean owned = jObject.getBoolean("owned");
int minPlayers = jObject.getInt("minPlayers");
int maxPlayers = jObject.getInt("maxPlayers");
int gameTime = jObject.getInt("playingTime");
int rating = jObject.getInt("rating");
System.out.println("owned: " + owned + " minPlayers :" + minPlayers + " chosenPlayers :" + chosenPlayers + " maxPlayers :" + maxPlayers + " chosenPlaytime :" + chosenPlaytime + " gameTime :" + gameTime);
if (owned && (minPlayers <= chosenPlayers && maxPlayers >= chosenPlayers) && chosenPlaytime <= gameTime) {
String thumbNail = jObject.getString("thumbnail");
String image = jObject.getString("image");
String gameName = jObject.getString("name");
if (rating >= 9.0) {
out.println("<div class=\"boardgame good\">");
}
else {
out.println("<div class=\"boardgame\">");
}
out.println("<h1 class=\"gameName\">" + gameName + "</h1>");
out.println("<p><a href=\" " + image + " \" target=\"_blank\"><img class=thumbnail src=" + thumbNail + "></a></p>");
out.println("<p class=\"gameDetails\">Speltid: " + gameTime + "</p>");
out.println("<br>");
if (minPlayers == maxPlayers) {
out.println("<p class=\"gameDetails\">" + minPlayers + " Spelare" + "</p>");
}
else {
out.println("<p class=\"gameDetails\">" + minPlayers + " - " + maxPlayers + " Spelare" + "</p>");
}
if (gameTime == -1) {
out.println("<p class=\"gameDetails\">Speltid: " + "?" + "</p>");
}
out.println("</div>");
}
}
out.println(" <div class=\"sokruta\"><h1>Sök Spel</h1><br><form method=\"post\">"
+ "<p>Antal spelare: <input type=\"number\" name=\"players\" min=\"1\" max=\"12\" \n"
+ "value=\"" + players + "\"></p>"
+ "<p>Maximal speltid: <input type=\"number\" name=\"playtime\" min=\"5\" \n"
+ "max=\"240\" value=\"" + playtime + "\"></p>"
+ "<p><input type=\"submit\" value=\"Sök spel\" name=\"button\"></p>\n"
+ "</form></div>");
out.println("</body>");
out.println("</html>");
}
} catch (Exception e) {
System.out.println("Exception");
}
}
protectedvoiddopost(HttpServletRequest请求,HttpServletResponse响应)
抛出ServletException、IOException{
//processRequest(请求、响应);
stringplayers=request.getParameter(“players”);
字符串playtime=request.getParameter(“playtime”);
int chosenPlayers=Integer.parseInt(玩家);
int chosenPlaytime=Integer.parseInt(播放时间);
URL=新URL(“http://bgg-json.azurewebsites.net/collection/Dan%20Xxxxxxx”;//现在被我藏起来了
URLConnection yc=url.openConnection();
try(BufferedReader in=new BufferedReader(new InputStreamReader(yc.getInputStream())){
字符串inputLine=null;
字符串结果=“{\”boardgames\:”;
而((inputLine=in.readLine())!=null){
结果=结果+输入行;
}
结果=结果+”,\“responseStatus\”:200}”;
JSONTokener令牌=新的JSONTokener(结果);
JSONObject joRoot=(JSONObject)tokener.nextValue();
JSONArray jarr=joRoot.getJSONArray(“boardgames”);
int numberOfBoardgames=jarr.length();
setContentType(“text/html;charset=UTF-8”);
尝试(PrintWriter out=response.getWriter()){
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“Servlet BGGCollectionServlet”);
out.println(“”);
out.println(“”);
out.println(“”);
对于(int i=0;i”);
out.println(“”;
out.println(“
”);
if(minPlayers==maxPlayers){
out.println(“
“+minPlayers+”Spelare“+”
”);
}
否则{
out.println(““+minPlayers+”-“+maxPlayers+”Spelare“+”
”);
}
如果(游戏时间==-1){
out.println(“”;
}
out.println(“”);
}
}
out.println(“Sök Spel
”
+“Antal spelare:
”
+“最大speltid:”
+“\n”
+ "");
out.println(“”);
out.println(“”);
}
}捕获(例外e){
System.out.println(“例外”);
}
}
chosenPlaytime感谢您的帮助!它现在可以工作了:)chosenPlaytime谢谢你的帮助!它现在起作用了:)