所以我在JSP中有一个简单的登录表单,该表单连接到数据库并检查用户是否在表中
当它检查它要么打印在网页上
欢迎+用户
否则会显示无效密码,然后重试
问题是它从不输出无效密码,然后重试它只是进入空白页
如果他们在表中,它将显示“欢迎+用户”,我似乎无法弄清楚为什么只有那一半的语句
它的问题有些简单,但我无法弄清楚
<body>
<%@ page import ="java.sql.*" %><%@ page import ="javax.sql.*" %><%String user = request.getParameter("userid");
session.putValue("userid", user);
String pwd = request.getParameter("pwd");
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://localhost:8081/socusers", "root", "");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from users where user_id='" + user + "'");
if (rs.next()) {
if (rs.getString(2).equals(pwd)) {
out.println("welcome " + user);
} else {
out.println("Invalid password try again");
}
}
%>
</body>
您的问题是因为您的查询没有返回任何内容,因此您永远不会输入其他内容,因为if (rs.next()) {
如果if或与确实存在但使用错误密码的用户一起向其添加else,则不会在第一个字段上输入!您将看到它显示您的错误。
就像是:
String message = "";
if (rs.next()) {
if (rs.getString(2).equals(pwd)) {
message = "welcome " + user;
} else {
message = "Invalid password try again";
}
}else{
message = "Invalid user try again";
}
out.println(message);
另外,请考虑使用选择的表格列而不是星号。如果有人更改该表(例如列顺序),您的系统将崩溃。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句