所以我在 JSP 中有一个简单的登录表单,它连接到数据库并检查用户是否在表中
当它检查时它要么打印在网页上
欢迎+用户
否则它会打印 Invalid password try again
问题是它从不打印 Invalid password try again it just goes to a blank page
如果它们在表中,它将打印 Welcome + User 我似乎无法弄清楚为什么它只有语句的那一半
它可能很简单,但我想不通
<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>
最佳答案
你的问题是因为你的查询没有返回任何东西,所以你永远不会输入 else 因为你没有输入第一个 if if (rs.next()) {
尝试添加如果 或 确实存在但密码错误的用户,则为 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);
此外,请考虑在您的选择中使用表格列而不是星号。如果有人更改该表(例如列订单),您的系统将会崩溃。
关于java - JSP 文件输出 If/Else 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34056712/