【发布时间】:2016-01-28 15:57:46
【问题描述】:
当前用户登录后,如何将他们的信息存储在会话变量中?在他们登录后,需要在整个 Web 应用程序中访问这些数据。
这是我目前所拥有的:
User.java
@Named
@Table
@Entity
@SessionScoped
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id @GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "id")
private long id;
@Column(name = "firstname")
private String firstname;
@Column(name = "lastname")
private String lastname;
@Column(name="username")
private String username;
@Column(name = "password")
private String password;
public User() {}
...
UserData.java
@Named
@RequestScoped
public class UserData implements Serializable {
private static final long serialVersionUID = 1L;
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = null;
Transaction tx = null;
List<User> users;
String username;
String password;
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public UserData() {
try {
this.session = sessionFactory.openSession();
}
catch(Exception e) {
e.printStackTrace();
}
}
public void login() {
System.out.println("Authorize: Username: " + this.username + " Password: " + this.password);
Query query = session.createQuery("from User U where U.username = :username and U.password = :password");
query.setParameter("username", this.username);
query.setParameter("password", this.password);
System.out.println(query.list());
}
返回了正确的用户对象,但我不知道如何将用户对象保存在用户的会话数据中。
我正在使用的技术(如果有帮助的话):
- 休眠
- MySQL
- JPA
- JSF
- 野蝇
【问题讨论】:
-
您使用的是哪个网络框架?
-
@redflar3 我没有使用 Web 框架,这是普通的旧 javaEE。