繁体   English   中英

从servlet获得响应

[英]Getting response from servlet

我正在使用以下代码从servlet获取响应。 它将检查变量“get”中的给定名称是否在特定表中,如果存在则打印1

servlet代码的一部分:

get = request.getParameter("nam");// such as get="kannan"
try {
    // Connection code

    ResultSet rs = stmt
            .executeQuery("select * from newfarmer where rname='" + get
                    + "'");
    while (rs.next()) {
        username = rs.getString("rname");

        if (get.equals(username)) {
            out.println(1);
        }

    }
} catch (Exception e) {
    out.println(e.toString());
}

在我的Android应用程序中,我检查此响应如下:

response = CustomHttpClient.executeHttpPost(
        "http://moberp.svsugar.com:8080/androidservlt/Modify",
        postParameters);
String res = response.toString();
res = res.trim();

if (res.equals("1")) {
    flag = 1;
    Toast.makeText(getBaseContext(), "Correct", Toast.LENGTH_LONG)
            .show();
} else {
    flag = 2;
    Toast.makeText(getBaseContext(), "please enter correct Ryot name",
            Toast.LENGTH_LONG).show();
}

它对于单一记录非常有效。 我的意思是,在“newfarmer”表中,如果“rname”由多个相同的名称组成,则只执行else部分。

示例:如果表中出现“kannan”2次,则Servlet输出为

1 1

现在在android应用程序中,显然else部分被执行,因为响应不是1.这只是两个相同名称的情况。 该表可能包含10个以上的相同名称。 如果有10个相同的名称,则servlet输出为

1 1 1 1 1 1 1 1 1 1

所以我需要检查所有。 所以我需要在if条件下进行更改,但我不知道该怎么做。 有人请回答。

提前致谢

而不是while循环使用

if(rs.next())

现在只打印一次。

android没有变化

在servlet中执行此操作

如果(rs.next())

           {
               username=rs.getString("rname");

             if(get.equals(username))
             {
                   out.println(1);
             }

           }

}

如果记录存在,此循环现在只运行一次。

我不明白为什么当您在SQL查询中使用where子句时, get.equals(username)将评估为false?

所以试试吧。

if(rs.next()) 
{    
              // The above condition will make the code inside if executed 
              // only if any matching record is found and 
              //hence it will print `1` only once 
              //if any matching record is found. 
   username=rs.getString("rname");

   if(get.equals(username))
   {
       out.println(1);
   }

}

你也在使用stmt.executeQuery("select * from newfarmer where rname='"+get+"'"); 这容易受到SQL注入的影响。

因此,最好使用预备语句。

尝试if(rs.next()) ,这肯定会帮助你

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM