Java 无法验证用户是否在数据库中或不在JSP中
我是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()) {
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;
}
}