I've created this change password interface, but for some reason it doesn't seem to be updating the password in the database, which means something is wrong with my code. Could someone please take a look, thanks! The problem is not comparing strings, as I have corrected that and it is still not working, so can I please have this question reopened, thanks :)
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>
NewPassword.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class NewPassword extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String oldpassword = request.getParameter("oldpassword");
String newpassword = request.getParameter("newpassword");
String confirmpassword = request.getParameter("confirmpassword");
HttpSession session = request.getSession(false);
String employeeid = "";
if(session != null) {
employeeid = (String)session.getAttribute("employeeid");
}
boolean st = false;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/payroll_system", "root", "");
PreparedStatement ps = con.prepareStatement("SELECT pwd FROM payroll_system.employee_login WHERE employeeID = ?");
ps.setString(1, employeeid);
ResultSet rs = ps.executeQuery();
st = rs.next();
if(st) {
String currentpassword = rs.getString("pwd");
if((currentpassword.equals(oldpassword)) && newpassword.equals(confirmpassword)) {
PreparedStatement pd = con.prepareStatement("UPDATE payroll_system.employee_login SET pwd = ? where employeeID = ?" );
pd.setString(1, newpassword);
pd.setString(2, employeeid);
ResultSet rd = pd.executeQuery();
st = rd.next();
if(st) {
out.println("successfully updated password");
}
}
}
}catch(Exception e)
{
e.printStackTrace();
}
out.close();
}
}