我在 jsp 中编写程序来检查数据库中电子邮件是否已注册时遇到问题。
所以我只是想我可以使用 select * from..
来实现它,但现在我正在努力解决重定向问题。
实际上我的程序运行良好,但存在一些问题。我想让它成为一种方式,如果电子邮件不存在,它应该假设欢迎。但什么也没发生。出现空白白页
。你能帮我一下吗?我现在哪里错了?
这是我的代码:
String user_email=request.getParameter("user_email");
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/forum", "root", "1234");
PreparedStatement st=con.prepareStatement("select * from login_system where email=?");
st.setString(1, user_email);
ResultSet rs=st.executeQuery();
while(rs.next()){
if(user_email.equals(rs.getString("email"))){
out.print("Email is already registered!!");
}
else{
out.print("Welcome..");
}
}
}
catch(Exception e){
e.printStackTrace();
}
%>
当然,我们将不胜感激!!
最佳答案
如果电子邮件在数据库中,您的查询将仅返回一行,如果电子邮件未注册,则不会返回任何行。
您的代码包含两个问题:如果没有返回行,rs.next()
是 false
,所以你永远不会进入 while 循环。
如果返回一行,则无需检查电子邮件地址,因为您只选择了数学行。
代码应如下所示:
ResultSet rs=st.executeQuery();
if (rs.next()){
// we found a row wth the email address
out.print("Email is already registered!!");
}
else{
// email not found in database
out.print("Welcome..");
}
关于java - 电子邮件已使用 jsp 注册?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27833499/