我遇到以下问题。我在mysql中创建了一个名为“ users”的表,我想使用JSP添加用户。主键是电子邮件,我想在添加其他用户之前检查该电子邮件是否已经存在。如果电子邮件已经存在,则不会将用户添加到数据库中,并且会显示一条消息“电子邮件已经存在”。
我创建了ResultSet rs对象,并使用while循环将“电子邮件”列提取到字符串电子邮件中。现在,问题来了。假设我有一个使用“ denis@yahoo.com”电子邮件的用户。如果我尝试使用完全相同的电子邮件添加用户,则会发生错误,这意味着我的if语句被忽略。我在调试模式下查找了变量email和Email,它们具有完全相同的“ denis@yahoo.com”,并且仍然忽略了if语句。
<!-- file name: addUser.jsp -->
<%
String Email=request.getParameter("Email");
String Name = request.getParameter("Name");
String Adress = request.getParameter("Adress");
String Phone = request.getParameter("Phone");
if (Email != null)
{
jb.connect(); // connect to the database using JavaBean class
ResultSet rs;
rs=jb.seeTable("users");// rs gets first row of table
String email;
int a=1;
while(rs.next())
{
email=rs.getString("Email");
if(Email==email)
{
a=0;
jb.disconnect();
%>
<p> The email already exists</p>
<%
break;
}
}
if(a==1){
jb.addUser(Email,Name, Adress, Phone);
jb.disconnect();
%>
<p>Data has been added.</p>
<%
}
} else {
%>
<form action="addUser.jsp" >
Email: <input type="text" name="Email"><br>
Name: <input type="text" name="Name"><br>
Adress: <input type="text" name="Adress"><br>
Phone: <input type="text" name="Phone"><br>
<button type="submit" >Add User</button><br>
</form>
<%
}
%>
我使用NetBeans IDE 8.2,在调试模式下出现了一些我认为很奇怪的东西。我尝试测试的一封电子邮件显示为粗体,而另一封邮件则未显示为粗体。
如果我用另一个用户的电子邮件完全相同地添加用户,为什么我的if语句被忽略?请帮帮我!