2014-02-10 2 views
0

У меня есть javabean под названием Userbean, где я храню данные для пользователей.Сервлет не может получить доступ к данным из bean

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

Я хочу, чтобы получить тис данные из сервлета, но в каждом сервлете я должен сделать новый UserBean и не могу использовать методы «GetData». Одним словом, я не могу получить доступ к данным из компонента в сервлете. Для exaple

String uid = userBean.getUid(); 

каждый раз возвращает

java.lang.NullPointerException

Единственный способ, которым я могу избежать этой ошибки является использование

userBean = new UserBean(); 

, но я хочу используйте данные, которые уже были вставлены в компонент, а не для создания нового. Есть идеи? Заранее спасибо.

+1

Где и как вы храните UserBean? HttpSession? –

+0

показать сервлет и как он называется – Sionnach733

+3

Предлагаю вам прочитать вступительную книгу о Java, переменных и объектах, прежде чем пытаться разработать сервлеты. веб-программирование - сложная задача, и вы не уйдете далеко, если не поймете основы. –

ответ

2

После первого экземпляра боба и установите значения в одном сервлете, если вы хотите, чтобы иметь возможность получить доступ к нему в других сервлетах без воссоздания, вам необходимо сохранить его в сессии:

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

В другом сервлете

UserBean beanvar = (UserBean)session.getAttribute("somename"); 
if(beanvar != null) 
{ 
    String uid = beanvar.getUid(); 
    ... 
} 
Смежные вопросы