我的超类用户存在一些问题,其中包含学生、教师和公司的用户名和密码。
一切正常,但是当我使用某个用户名/密码组合登录时,数据会丢失。我仍然有来自学生/教师/公司的数据,但不再是用户数据。
User.java(荷兰语中的 gebruiker,这是超类):
public class Gebruiker {
private String gebruikersnaam, wachtwoord;
public Gebruiker(String gn, String ww) {
gebruikersnaam = gn; //username
wachtwoord = ww; //password
}
public Gebruiker() {
//Default constructor
}
//Getters and setters...
}
}
Student.java(荷兰语中的leerling):
public class Leerling extends Gebruiker implements Serializable {
private static final long serialVersionUID = -3586223028920551117L;
private String naam, email, leerlingnr;
public Leerling(String gn, String ww, String nm, String em, String ln) {
super(gn, ww);
naam = nm;
email = em;
leerlingnr = ln;
}
//Getters and setters...
}
到目前为止,代码工作正常。我可以使用这样的用户名和密码创建一个学生:
Gebruiker g1 = (Gebruiker) new Leerling("username", "password", "name", "email", "nr");
当我登录到我的应用程序并与我的用户设置会话时,问题就出现了:
req.getSession().setAttribute("gebruikerObject", g1);
我刷新页面的那一刻。用户对象中的用户名和密码为空,'name' 'email' 和 'nr' 保持正常。当我在 JSP 页面上打印 gebruikerObject 时,每次刷新都会得到不同的返回值:
com.appspot.AccentNijkerk.model.Leerling@16ee9e2
com.appspot.AccentNijkerk.model.Leerling@1c6b2e3
com.appspot.AccentNijkerk.model.Leerling@1fa486
我真的希望你们能帮助我,提前谢谢。
PS:我使用 Google App Engine,会话已启用