Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的更改密码界面在java eclipse web应用程序上不起作用_Java_Database_Servlets - Fatal编程技术网

我的更改密码界面在java eclipse web应用程序上不起作用

我的更改密码界面在java eclipse web应用程序上不起作用,java,database,servlets,Java,Database,Servlets,我创建了这个更改密码界面,但由于某些原因,它似乎没有更新数据库中的密码,这意味着我的代码有问题。谁能看一下,谢谢!问题是没有比较字符串,因为我已经纠正了这一点,它仍然不起作用,所以我可以重新打开这个问题吗,谢谢:) ChangePassword.html <!DOCTYPE html> <html> <head> <meta charset = "UTF-8"> <title>Change Password</title&

我创建了这个更改密码界面,但由于某些原因,它似乎没有更新数据库中的密码,这意味着我的代码有问题。谁能看一下,谢谢!问题是没有比较字符串,因为我已经纠正了这一点,它仍然不起作用,所以我可以重新打开这个问题吗,谢谢:)

ChangePassword.html

<!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()
to
int updated=pd.executeUpdate()
并将if改为
if(更新>0)

@StefanBeike哦,也许这就是为什么哈哈。对不起,到目前为止我只使用了select语句。@StefanBeike您能指导我吗?由于主要问题是执行查询,所以将提交放在何处并重新打开。比较字符串只是问题的一部分。另外,您可能不应该在数据库中以纯文本形式存储这些密码。改用SHA-256这样的单向散列。@daiscog在mysql中如何实现这一点?你怎么知道我是以纯文本的形式存储的呢?这会检查以确保只有当旧密码=当前密码和新密码=确认密码时才进行更新。哦,我明白了,谢谢,我还需要提交吗?问题是commit还是==语句?或者两者都有?是的,但您希望比较值,而不是参考值。只有当自动提交在您的连接中不正确时,才需要提交。好的,谢谢,我会尝试一下并给您打勾:)有错误或消息吗?
if(passmatch.equals(oldpassword) && newpassword.equals(confirmpassword)) {