我的更改密码界面在java eclipse web应用程序上不起作用
我创建了这个更改密码界面,但由于某些原因,它似乎没有更新数据库中的密码,这意味着我的代码有问题。谁能看一下,谢谢!问题是没有比较字符串,因为我已经纠正了这一点,它仍然不起作用,所以我可以重新打开这个问题吗,谢谢:) ChangePassword.html我的更改密码界面在java eclipse web应用程序上不起作用,java,database,servlets,Java,Database,Servlets,我创建了这个更改密码界面,但由于某些原因,它似乎没有更新数据库中的密码,这意味着我的代码有问题。谁能看一下,谢谢!问题是没有比较字符串,因为我已经纠正了这一点,它仍然不起作用,所以我可以重新打开这个问题吗,谢谢:) ChangePassword.html <!DOCTYPE html> <html> <head> <meta charset = "UTF-8"> <title>Change Password</title&
<!DOCTYPE html>
<html>
<head>
<meta charset = "UTF-8">
<title>Change Password</title>
</head>
<body>
<form action ="NewPassword" method = post>
<h1>Change Password</h1>
<b>Enter Old Password:</b>
<br>
<input type = "password" name = "oldpassword" size = "20">
<br>
<br>
<b>Enter New Password:</b>
<br>
<input type = "password" name = "newpassword" size = "20">
<br>
<br>
<b>Confirm New Password</b>
<br>
<input type = "password" name = "confirmpassword" size = "20">
<br>
<br>
<input type = "submit" value = "Update Password">
<br>
<br>
</form>.
</body>
</html>
这是错误的:
if(passmatch == oldpassword && newpassword == confirmpassword) {
使用等于
比较字符串
:
if(passmatch.equals(oldpassword) && newpassword.equals(confirmpassword)) {
使用==
可以比较对象引用,而不是值
进一步更改
ResultSet rd=pd.executeQuery()
toint updated=pd.executeUpdate()
并将if改为if(更新>0)
@StefanBeike哦,也许这就是为什么哈哈。对不起,到目前为止我只使用了select语句。@StefanBeike您能指导我吗?由于主要问题是执行查询,所以将提交放在何处并重新打开。比较字符串只是问题的一部分。另外,您可能不应该在数据库中以纯文本形式存储这些密码。改用SHA-256这样的单向散列。@daiscog在mysql中如何实现这一点?你怎么知道我是以纯文本的形式存储的呢?这会检查以确保只有当旧密码=当前密码和新密码=确认密码时才进行更新。哦,我明白了,谢谢,我还需要提交吗?问题是commit还是==语句?或者两者都有?是的,但您希望比较值,而不是参考值。只有当自动提交在您的连接中不正确时,才需要提交。好的,谢谢,我会尝试一下并给您打勾:)有错误或消息吗?
if(passmatch.equals(oldpassword) && newpassword.equals(confirmpassword)) {