使用derby数据库登录Web应用程序(netbeans)

问题描述 投票:-2回答:1

我正在尝试使用来自derby数据库的数据登录,我设置但是servlet 'loginservlet'似乎没有拿起数据库。我的代码有问题吗?

loginservlet中的代码:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
/**
 *
 * @author billemerson
 */
public class LoginServlet extends HttpServlet  {
    public void doPost(HttpServletRequest req, HttpServletResponse res)
            throws ServletException, IOException { 
 try 
 {
     Class.forName("org.apache.derby.jdbc.ClientDriver");
     Connection conn = DriverManager.getConnection("jdbc:derby://localhost:1527/HOUSEPLANTSIRELAND","houseplant","pass");
     PreparedStatement ps = conn.prepareStatement("SELECT * FROM HOUSEPLANT.USERDATA WHERE EMAIL=? AND PASSWORD=?");
        String EMAIL = req.getParameter("email");
        String PASSWORD = req.getParameter("password");
        ps.setString(4,EMAIL);
        ps.setString(5,PASSWORD);
        ResultSet rs = ps.executeQuery();
        if(rs.next())
        {           
            res.sendRedirect("adminhome.jsp");   
        }
        else {
            res.sendRedirect("index.html");
        }
        catch (Exception e)
        {
            System.out.println(e.getMessage());           
    }
    }
}
java html servlets netbeans derby
1个回答
0
投票

我认为参数号是问题所在。你的sql摘录:

哪里有电子邮件=?和密码=?

PreparedStatement参数从1开始计算。第一个问号是1,第二个是2,依此类推。所以代码将是:

    ps.setString(1,EMAIL);
    ps.setString(2,PASSWORD);
© www.soinside.com 2019 - 2024. All rights reserved.