【发布时间】:2018-03-09 03:01:59
【问题描述】:
我试图验证我通过html从用户那里收到的用户名和密码,但是我的结果集没有收到任何数据,请检查我的sql查询并纠正我,谢谢
String vuname=response.getParameter("username");
String vpswd=response.getParameter("password");
String vsql="select * from login where username = '" + vuname + "' and password = '" + vpswd + "'";
System.out.println("----sql-----"+vsql);
ResultSet rs = stmt.executeQuery(vsql);
out.println("This is result set "+check);
if(!rs.next())
{
System.out.println("-----Failure------");
}
else
{
System.out.println("-----Success------");
rd.forward(request,response);
}
}
catch(Exception e)
{}
}
}
【问题讨论】:
-
检查您是否从 getParameter() 获得所需的值。
-
不相关,但是:您应该不将输入连接到这样的 SQL 查询中。请learn how to use
PreparedStatement -
不要将值连接到查询字符串中。这是不安全的,并且会使您的代码容易受到 SQL 注入的影响。此外,不要以纯文本形式存储密码。无论如何,如果没有minimal reproducible example,我们只能假设您尝试的用户/密码组合与表中的数据不匹配。