我在使用jsp创建程序时遇到问题,检查数据库是否注册了电子邮件。
所以我只是认为我可以使用select * from..
,但现在这次我正在努力重定向。
实际上我的程序工作正常但是它有一些问题。如果不存在电子邮件,我想让它成为一种方式,它应该假设欢迎。但什么都没发生。它显示为Blank white page
。拜托,请帮帮我吧。我现在认为哪里错了?
这是我的代码:
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();
}
%>
当然,帮助将不胜感激!!
答案 0 :(得分:0)
如果电子邮件在数据库中,您的查询将只返回一行,如果电子邮件未注册,则不会返回任何行。
您的代码包含两个问题:如果没有返回任何行,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..");
}