我有一个名为Userbean的Javabean,我在其中存储用户数据。

public class UserBean
{
        public String uid;               //User ID
        public String password;          //Password
        public String email;           //Email
        ...
        public UserBean() {}

        public void setUid(String str) {uid = str;}
        public String getUid() { return uid;}
        ...


我想从一个servlet获取数据,但是在每个servlet中,我必须创建一个新的Userbean,并且不能使用“ getData”方法。总之,我无法从servlet中的bean访问数据。例如

String uid = userBean.getUid();


每次回来


  java.lang.NullPointerException


我可以避免此错误的唯一方法是使用

userBean = new UserBean();


但是我想使用已经放入bean中的数据,而不是创建一个新数据。有任何想法吗?提前致谢。

最佳答案

首次实例化bean并在一个servlet中设置值之后,如果希望能够在其他servlet中访问它而不重新创建它,则需要将其保存在会话中:

UserBean beanvar = new UserBean();
beanvar.setUID(uid);
session.setAttribute("somename", beanvar);


在另一个servlet中,

UserBean beanvar = (UserBean)session.getAttribute("somename");
if(beanvar != null)
{
   String uid = beanvar.getUid();
  ...
}

07-26 01:38