Как получить атрибут сеанса из другого сервлета?
Я должен сделать проект для колледжа, и у меня есть некоторые проблемы, если кто-то из вас может мне помочь, я буду очень благодарен.
Проект - это магазин подержанных продуктов, и до сих пор нам приходилось делать сервлет для вставки продуктов в список, который позже будет сохранен в общем пользовательском сеансе (мы не используем какую-либо БД, только пользовательский сеанс). Это было нормально, но теперь мне нужно сделать другой сервлет, который ищет в этом списке, но у меня проблемы с получением списка из другого сервлета.
Код для сервлета, который сохраняет продукты в атрибуте сеанса пользователя.
listaProds.add(prod);
request.getSession().setAttribute("listaProdutos", listaProds);
Вот код, где я пытаюсь получить список из другого сервлета
listaProds =(ArrayList<Produto>) request.getSession().getAttribute("listaProdutos");
Дело в том, что я получаю только нулевой указатель во втором сервлете, и я понятия не имею, что делать дальше...
Дополнительная информация: я использую netbeans, оба сервлета находятся в одном пакете, оба сервлета "вызываются" с двух разных страниц.jsp.
Если кто-нибудь может мне помочь, это будет здорово, и если вам понадобится какая-то другая информация, просто спросите, и я предоставлю.
Заранее спасибо!!
1 ответ
Вы получаете NPE, потому что вы получаете объект, скорее вы должны попробовать
listaProds =(ArrayList<Produto>) request.getSession().getAttribute("listaProdutos");
должен работать как положено.
Из документов Java, HttpRequest#getAttribute
java.lang.Object getAttribute (java.lang.String name) Возвращает значение именованного атрибута в виде объекта или значение NULL, если атрибута с данным именем не существует.