java - Servlet 无法从 bean 访问数据

标签 java servlets javabeans

我有一个名为 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 中访问它而不重新创建它,则需要将其保存在 session 中:

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();
  ... 
}

关于java - Servlet 无法从 bean 访问数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21686569/

相关文章:

java - 是否可以从 Servlet 中调用一个独立的线程?

Java最佳实践: optimum number of calls in the Controller

java - 如何在需要时而不是在启动时初始化单例 spring bean?

Java - 固定大小列表和指定初始容量的列表之间的差异

java - 使用 double 类型时在 Java 中转换为整数

jsf - Servlet 过滤器和 Servlet 上下文监听器有什么区别?

java - Spring 启动 : read from yaml using @ConfigurationProperties not working with @Data

java - Spring中如何更新数据源bean?

java - Spring MVC Model.containsAttribute 调用的方法是无访问器方法

java - 执行yardstick-ignite框架时发生权限错误