java - JSP 文件输出 If/Else 问题

标签 java html database jsp

所以我在 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/

相关文章:

java - 和java中main处的错误

java - 如何在 CSV 导出期间保留日期格式

java - 与字符 "\"斗争,试图用 mathjax 显示数学公式

php - javascript点击时隐藏div

jquery - 在链接的鼠标悬停时更改 div 的背景图像

database - Blob 文件未出现在查询编辑器中

Java Web 服务请求-响应问题

javascript - 当我使用 ajax 从 "echo"PHP 获取 html 代码时,我需要继续执行 JS 代码

database - 如何在数据库主键的 UUID、自动增量/序列键和序列表之间进行选择?

ruby-on-rails - 如何从模型在 Rails 3 中执行复杂的 Arel 查询