Хорошо, я застрял с этим. У меня есть код, настроенный на прием нужных мне полей в файле xhtml. Имя пользователя, пароль, новый пароль и подтверждение нового пароля. Кажется, я не могу понять, правильно ли я подключаюсь к базе данных. Я также не уверен, как идти о написании кода, который будет сравнивать имя пользователя и пароль, введенные в эти поля в файле xhtml, с тем, который введен в базу данных. Затем мне нужно подтвердить, что новый пароль и пароль подтверждения совпадают, и если они совпадают, и я нажимаю кнопку отправки, то я обновлю пароль в базе данных. Любая помощь будет оценена
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:head>
<title>Change Password</title>
</h:head>
<h:body>
<h:form id="mypass">
<h3>
Change Password
</h3>
<h:panelGrid columns="2">
<h:outputLabel value="Username"/>
<h:inputText id="username" value="#{passChange.username}" tabindex="1" required="true"
requiredMessage="Username is required."/>
<h:outputLabel value="Old Password"/>
<h:inputSecret id="password" value="#{passChange.password}" tabindex="1" required="true"
requiredMessage="Old Password is required."/>
<h:outputLabel value="New Password"/>
<h:inputSecret id="newPassowrd" value="#{passChange.newPassword}"/>
<h:outputLabel value="Confirm New Password"/>
<h:inputSecret id="newPasssword" value="#{passChange.confirmPassword}"/>
</h:panelGrid>
<br />
<h:commandButton value="Submit" action = "PassChanged" actionListener="#" />
<h:button value="reset" />
</h:form>
</h:body>
</html>
import java.awt.event.ActionEvent;
import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import java.sql.*;
import javax.swing.JOptionPane;
@ManagedBean
@SessionScoped
public class PassChange implements Serializable{
private String username = "root@localhost";
private String password= "root@localhost";
private String name = "root@localhost";
private String newPassword;
private String confirmPassword;
Connection con;
PreparedStatement st;
ResultSet rs;
String host = "jdbc:derby://localhost:1527/Account [app on APP]";
public PassChange() {
this(null, null, "Ashanti Terry", null, null);
connect();
}
public PassChange(String username, String password, String name, String newPassword, String confirmPassword) {
this.username = username;
this.password = password;
this.name = name;
this.newPassword = newPassword;
this.confirmPassword = confirmPassword;
}
public void connect(){
try {
String driver = "jbdc:derby:??localhost:1527/Account";
Class.forName(driver);
con = DriverManager.getConnection(host, "root","");
} catch (Exception e) {
JOptionPane.showMessageDialog(null,e);
}
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNewPassword() {
return newPassword;
}
public void setNewPassword(String newPassword) {
this.newPassword = newPassword;
}
public String getConfirmPassword() {
return confirmPassword;
}
public void setConfirmPassword(String confirmPassword) {
this.confirmPassword = confirmPassword;
}
public String getInput(){
return "<p style=\"color:green\"> "
+ "Hello, " + name + ", your password has been updated!" + "</p>";
}
}