ログイン後にユーザーのフルネームを表示しようとしていますが、方向を必要としています。私はすでにデータベースに対してユーザーを検証していますが、ログインからメールを返します。ログインしているユーザーに関する情報LoginDAO、Session、およびmanagedbeanの3つのクラスがあり、loginDAOにはデータベースから必要な情報を取得するためのクエリが含まれています。javaでログインした後にフルネームを返します
public class Users {
private int userid;
private String fname;
private String lname;
private String email;
private String password;
private String profileimg;
Profile uprofile = new Profile();
public Profile getUprofile() {
return uprofile;
}
public void setUprofile(Profile uprofile) {
this.uprofile = uprofile;
}
public String getProfileimg() {
return profileimg;
}
public void setProfileimg(String profileimg) {
this.profileimg = profileimg;
}
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getFname() {
return fname;
}
public void setFname(String fname) {
this.fname = fname;
}
public String getLname() {
return lname;
}
public void setLname(String lname) {
this.lname = lname;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
public class LoginDAO {
public static Users validate (String user,String password) throws SQLException{
Connection con = null;
PreparedStatement ps = null;
Users validUser = null;
try{
con = DataConnect.getConnection();
ps = con.prepareStatement("Select fname,lname,email, password from users where email = ? and password = MD5(?)");
ps.setString(1, user);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
if(rs.next()) {
validUser = new Users();
validUser.setFname(rs.getString("fname"));
validUser.setLname(rs.getString("lname"));
return true;
return validUser;
}
}catch (SQLException ex){
System.out.println("Login error -->" +
ex.getMessage());
return null;
}finally{
DataConnect.close(con);
}
return validUser;
} }
これは @ManagedBean(名= "loginbean") は パブリッククラスLoginBeanがシリアライズ{ プライベート文字列を実装@SessionScoped管理対象Beanでありますfname; プライベート文字列pwd; プライベートString msg; プライベートStringユーザー。
public String getFname() {
return fname;
}
public void setFname(String fname) {
this.fname = fname;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
このメソッドはloginDAOを呼び出し、ユーザー入力と照合してセッションを開始します。
public String validateUsernamePassword() throws SQLException {
Users validUser = LoginDAO.validate(user, pwd);
if (validUser != null) {
HttpSession session = SessionUtils.getSession();
session.setAttribute("username", validUser.getEmail());
session.setAttribute("firstname", validUser.getFname());
return "feed";
} else {
return "login";
}
}
//logout event, invalidate session
public String logout() {
HttpSession session = SessionUtils.getSession();
session.invalidate();
return "login";
}
<h:form>
<p>Welcome <h:outputText id="username" value="#
{loginbean.user}"/></p>
<h:outputText id="firstname" value="#{loginbean.fname}"/>
<h:commandLink action="#{loginbean.logout}" value="Logout">
</h:commandLink>
</h:form>
あなたのコードの書式設定を修正してください。 –
とあなたのプログラムの問題点は何ですか? – whyn0t