Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法验证用户是否在数据库中或不在JSP中_Java_Jsp - Fatal编程技术网

Java 无法验证用户是否在数据库中或不在JSP中

Java 无法验证用户是否在数据库中或不在JSP中,java,jsp,Java,Jsp,我是jsp新手,在验证用户是否已经在数据库中时遇到了一些问题。这是我的密码: package bean; import java.sql.*; public class LoginDao { public static boolean validate(LoginBean bean){ boolean status=false; try (Connection con = ConnectionProvider.getCon()) {

我是jsp新手,在验证用户是否已经在数据库中时遇到了一些问题。这是我的密码:

package bean;
import java.sql.*;
public class LoginDao {

    public static boolean validate(LoginBean bean){
        boolean status=false;
        try (Connection con = ConnectionProvider.getCon()) {
            String query = "SELECT * FROM test.UserInfo WHERE email = ? and password = ?";

            PreparedStatement statementSQL = con.prepareStatement(query);
            statementSQL.setString(1,  bean.getEmail());
            statementSQL.setString(2,  bean.getPassword());
            ResultSet resultSet = statementSQL.executeQuery();

            status = resultSet.next();
        } catch(Exception e){}
        return status;
    }
}
这里的问题是,地位永远不等于真。但是下面的方法工作得很好(我在主方法的另一个java类中尝试了这个方法):

其他文件:
LoginBean.java

package bean;

public class LoginBean {
    private String email, password;

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String pass) {
        this.password = pass;
    }
}
loginprocess.jsp(在这里,我总是得到LoginDAO.validate()的结果false)


我无法理解为什么连接在方法中工作,但在我的LoginDao类中不工作。catch(异常e){}不是一个好主意,可能存在一些异常,但您没有看到。其中一个可以工作而另一个不能工作的唯一原因是因为参数不同,否则执行的查询肯定是相同的。调试代码:再次检查参数,并打印可能发生的异常。该异常是NullPointerException,因为LoginDAO类中的Connection con==null。我仍然不知道为什么这只发生在LoginDAO中,而不发生在getSpecificUser方法中。我只能重复我以前的评论,
catch(Exception e){}
不是个好主意。可能第二次加载了
ConnectionProvider
类,并且
getConnection
引发异常。
package bean;

public class LoginBean {
    private String email, password;

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String pass) {
        this.password = pass;
    }
}
<%@page import="bean.LoginDao"%>  
<jsp:useBean id="obj" class="bean.LoginBean"/>  

<jsp:setProperty property="*" name="obj"/> 

<jsp:include page="index.jsp"></jsp:include>
 <hr/> 

<% 
    out.println(obj.getEmail());
    out.println(obj.getPassword());
    out.println(LoginDao.validate(obj));
%> 
<%@ include file="index.jsp" %> 
<hr/>  

<h3>Login Form</h3>    
<br/>  
<form action="loginprocess.jsp" method="post">  
    Email:<input type="text" name="email"/><br/><br/>  
    Password:<input type="password" name="password"/><br/><br/>  
    <input type="submit" value="login"/>  
</form>
package bean;
import java.sql.*;
import static bean.Provider.*;

public class ConnectionProvider {
    static Connection con=null;
    static{
        try{
            con=DriverManager.getConnection(CONNECTION_URL,USERNAME,PASSWORD);
            }catch(Exception e){}
    }

    public static Connection getCon(){
        return con;
    }
}