powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / доступ к SessionBean из JSP
13 сообщений из 13, страница 1 из 1
доступ к SessionBean из JSP
    #37921841
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый вечер.

Такой вопрос по архитектуре приложения.

Имеем:

Сервер glassfish.
Приложение состоит из сервлета, страницы jsp, session bean и entity bean.

1. Entity bean описывает структуру объекта для работы с БД.

2. Session Bean - является фактически АПИ к Entity Bean. Наподобие пакета PL/SQL как обычно в Oracle делают. В нем запросы на получение объектов из базы и методы для создания/редактирования этих объектов.

3. Есть сервлет, вся задача которого отреагировать на http запрос, получить из него параметры и передать данные в jsp страницу.

4. Есть jsp страница, которая по сути является только мордой для отображения данных. Логики в ней никакой нет.

Вся работа начинается с сервелета. Он инициализирует EJB контейнер
Код: java
1.
2.
    @EJB    
    private TestBeanRemote test;



и кладет в сессию объект
Код: java
1.
session.setAttribute("test", test);



затем делает форвард на jsp страницу
Код: java
1.
2.
		RequestDispatcher rd = request.getRequestDispatcher("test.jsp");
		rd.forward(request, response);



В этой jsp мы получаем объект test и далее работает с ним внутри jsp. Фактически дергая методы session bean.
Код: java
1.
2.
<% TestBeanRemote test = (TestBeanRemote ) session.getAttribute("test"); %>
<% out.println(test.getName()); %>




Вопрос простой - правильно ли так делать?
Как обычно поступают?
...
Рейтинг: 0 / 0
доступ к SessionBean из JSP
    #37921846
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И это вы называете нет логики в jsp? Страшно представить страницу где по вашему мнению есть логика.. Это так лирика.
1) Не кладите ejb в сессию - ejb это зачастую прокси, который управляется контейнером, со всеми вытекающими.
2) Зачем вы так извращаетесь с форвард? Зачем в конце концов jsp? Прикрутить spring mvc и какой-нибудь freemarker 10минутное дело. Там у вас будет Controller, в который инжектится ejb(кстати зачем ejb я уже спрашивал?), выполняется метод ejb, данные ложатся во ViewMap, далее через EL-выражения они доступны на странице. Вот он MVC.
...
Рейтинг: 0 / 0
доступ к SessionBean из JSP
    #37921865
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,

У меня нету спринга тут. Только гласфиш и EJB3.

В jsp нет никакой логики по управлению объектом. Она только отображает и передает данные.
Как объект хранится, как выбирается, как проверяется перед сохранением - этого в джиэспи же нет.

А как обычно поступают если все таки речь о связке JSP+EJB+JPA ?

Controller в freemarker это же по сути сервлет?
А ViewMap это разве не оболочка над хранением параметров в сессии?
...
Рейтинг: 0 / 0
доступ к SessionBean из JSP
    #37921867
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник Зачем в конце концов jsp?

нужно чтобы хтмл с данными из базы скрестить.
jsf тут нет. остальное тоже пока не доступно.
...
Рейтинг: 0 / 0
доступ к SessionBean из JSP
    #37921868
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КореецА как обычно поступают если все таки речь о связке JSP+EJB+JPA ?
1. сервлет вызывает test.getName()
2. результат сохраняет в атрибутах чего-нибудь (сессии, запроса, ...)
3. jsp использует атрибут из чего-нибудь (сессии, запроса, ...)
...
Рейтинг: 0 / 0
доступ к SessionBean из JSP
    #37921869
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кореецjsf тут нета четоза версия такая глассфиша?
...
Рейтинг: 0 / 0
доступ к SessionBean из JSP
    #37921870
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник1) Не кладите ejb в сессию - ejb это зачастую прокси, который управляется контейнером, со всеми вытекающими.

А можно поподробней?
...
Рейтинг: 0 / 0
доступ к SessionBean из JSP
    #37921875
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grasoff.netКореецjsf тут нета четоза версия такая глассфиша?

версия 3.
в самом проекте просто не используется.
я понимаю что может быть все это устарело и для вас дико выглядит, но связка именно такая.
мой опыт тоже пока не позволяет так вот сходу переключится на jsf или что то более крутое. я с другой технологии на это все перехожу.
...
Рейтинг: 0 / 0
доступ к SessionBean из JSP
    #37921877
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grasoff.netКореецА как обычно поступают если все таки речь о связке JSP+EJB+JPA ?
1. сервлет вызывает test.getName()
2. результат сохраняет в атрибутах чего-нибудь (сессии, запроса, ...)
3. jsp использует атрибут из чего-нибудь (сессии, запроса, ...)


спасибо.

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

хотя наверно криво да. он же не только запросы делает но и сам объект редактирует. хм.
...
Рейтинг: 0 / 0
доступ к SessionBean из JSP
    #37921879
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кореец,

там смысл был просто в том чтобы страницу нужными бинами инициализировать и потом не нагружать сам сервлет. Дизайн страницы меняется гораздо чаще и если в ней будет доступен сразу сессионный бин то многие вещи можно будет делать не трогая сервлеты.

ну конеяно если они не касаются редактирования объекта а только отображения.
...
Рейтинг: 0 / 0
доступ к SessionBean из JSP
    #37921900
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Корееци потом не нагружать сам сервлеттогда и сервлет не нужен )))
Код: plaintext
1.
2.
3.
4.
<%
TestBeanRemote test = (TestBeanRemote) new InitialContext().lookup("...");
out.print(test.getName());
%>
...
Рейтинг: 0 / 0
доступ к SessionBean из JSP
    #37921906
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grasoff.net,

вы правы наверно.
jsp оно же и есть по сути сервлет. компилится в него.

ладно ок.

а что лучше использовать тогда для обычной веб странички? Без сложного JS и т.п.

Wicket?

GWT можно использовать совместо с Wicket или чем то подобным в рамках одной страницы?(ну может быть как фрейм на ней?)
...
Рейтинг: 0 / 0
доступ к SessionBean из JSP
    #37922282
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КореецWicket?apache click
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / доступ к SessionBean из JSP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]