Java 是否已使用jsp注册电子邮件?

Java 是否已使用jsp注册电子邮件?,java,mysql,database,jsp,servlets,Java,Mysql,Database,Jsp,Servlets,我在用jsp制作一个程序以检查数据库中是否注册了电子邮件时遇到了一个问题 所以我只是想我可以使用select*from..来实现它,但现在我正在努力实现重定向 实际上我的程序运行得很好,但是有一些问题。我想让它成为一种方式,如果电子邮件不存在,它应该不受欢迎。但什么都没有发生。它出现在空白白页。你能帮帮我吗。我现在错在哪里 这是我的密码: String user_email=request.getParameter("user_email"); try{ Class.forName("

我在用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..");
}