Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Servlets / 12 сообщений из 12, страница 1 из 1
04.12.2012, 13:21:55
    #38064219
eJack
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Servlets
Всем доброго вечера. Разбираюсь с технологией сервлетов. Сейчас необходимо подключится к проекту где используются только jsp, jstl и servlet'ы.
Проблема в том что я не знаком с этими технологиями и вообще я раньше писал только серверную бизнес составляющую - но работа есть работа и надо оперативно въехать в процесс, хуже всего что помочь не кому - фактически мне на поддержку и мелкие доработки падает проект после ухода сотрудника его написавшего.

Так вот, пока у меня каша в голове - понятно что jsp это View и передав в jsp параметры (модель) я формирую это представление.
Servlet - собственно сам контроллер, он получает из бинов необходимые данные, заполняет модель и передает ее во вью (jsp). Вывод (PrintWriter) в сервлетах не используется.
Filter - я так понимаю это миханизм который перехватывает запросы по маске и может их маршрутизировать? Например можно ли разработать роутинг на основе фильтров? еще какие есть области применения?
Listener - вообще не понимаю зачем это.

Подскажите верно лия понял инфу за первый день своего погружения? Возможно есть и другие области применения этих компонентов технологии - подскажите?
пока бегло пробежался по теме - http://docs.oracle.com/javaee/6/tutorial/doc/bnafd.html.
Вообще инфы мало на эту тему - может подскажите хорошие книги или линки.
...
Рейтинг: 0 / 0
04.12.2012, 13:38:33
    #38064258
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Servlets
eJackВсем доброго вечера. Разбираюсь с технологией сервлетов. Сейчас необходимо подключится к проекту где используются только jsp, jstl и servlet'ы.
Проблема в том что я не знаком с этими технологиями и вообще я раньше писал только серверную бизнес составляющую - но работа есть работа и надо оперативно въехать в процесс, хуже всего что помочь не кому - фактически мне на поддержку и мелкие доработки падает проект после ухода сотрудника его написавшего.
Как обычно, слезное вступление.

eJackТак вот, пока у меня каша в голове - понятно что jsp это View и передав в jsp параметры (модель) я формирую это представление.

Верно.

eJackServlet - собственно сам контроллер, он получает из бинов необходимые данные, заполняет модель и передает ее во вью (jsp). Вывод (PrintWriter) в сервлетах не используется.

Сервлет не получает данные из бинов. Он получает данные из Request.
MVC Контроллер формирует из входных данных запрос для бизнес-логики из классов модели предметно области (domain model)
Т.е. сервлет-контроллер из HttpServletRequest формирует бины и отправляет дальше.

eJackFilter - я так понимаю это миханизм который перехватывает запросы по маске и может их маршрутизировать?
Например можно ли разработать роутинг на основе фильтров?

Роутинг удобнее сделать на сервлете.

eJackеще какие есть области применения?

Основная область применения это реализацию AOP для сервлетов. Безопасность, логирование и другие аспекты общия для очень многих подсистем.

eJackListener - вообще не понимаю зачем это.

Просто Listener слушает какие-то события. Паттерн - Observer. Речь о каком-то конкретном?

eJackПодскажите верно лия понял инфу за первый день своего погружения? Возможно есть и другие области применения этих компонентов технологии - подскажите?

Всё это давно уже есть в виде Spring MVC. Если его по каким-то странным причинам нельзя использовать, то хотя бы подчерпните оттуда идей.
...
Рейтинг: 0 / 0
04.12.2012, 13:39:53
    #38064264
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Servlets
eJackТак вот, пока у меня каша в голове - понятно что jsp это View и передав в jsp параметры (модель) я формирую это представление.
Servlet - собственно сам контроллер, он получает из бинов необходимые данные, заполняет модель и передает ее во вью (jsp). Вывод (PrintWriter) в сервлетах не используется.

Вы не используете MVC фреймворков? (SpringMVC, Struts)

eJackFilter - я так понимаю это миханизм который перехватывает запросы по маске и может их маршрутизировать? Например можно ли разработать роутинг на основе фильтров?
Можно. Так устроен фронт контроллер Struts.
eJackеще какие есть области применения?
Безопасность (проверить залогинен ли пользователь), архивирование (gzip), преобразование(допустим обрезать картинку перед отправкой).

eJackListener - вообще не понимаю зачем это.

Listener'ов несколько штук. Каждый отвечает за определенный род событий происходящих в вашем приложении. Создалась сессия, поднялось ваше приложение, ...
...
Рейтинг: 0 / 0
04.12.2012, 18:43:46
    #38064901
eJack
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Servlets
BlazkowiczeJackВсем доброго вечера. Разбираюсь с технологией сервлетов. Сейчас необходимо подключится к проекту где используются только jsp, jstl и servlet'ы.
Проблема в том что я не знаком с этими технологиями и вообще я раньше писал только серверную бизнес составляющую - но работа есть работа и надо оперативно въехать в процесс, хуже всего что помочь не кому - фактически мне на поддержку и мелкие доработки падает проект после ухода сотрудника его написавшего.
Как обычно, слезное вступление.

eJackТак вот, пока у меня каша в голове - понятно что jsp это View и передав в jsp параметры (модель) я формирую это представление.

Верно.

eJackServlet - собственно сам контроллер, он получает из бинов необходимые данные, заполняет модель и передает ее во вью (jsp). Вывод (PrintWriter) в сервлетах не используется.

Сервлет не получает данные из бинов. Он получает данные из Request.
MVC Контроллер формирует из входных данных запрос для бизнес-логики из классов модели предметно области (domain model)
Т.е. сервлет-контроллер из HttpServletRequest формирует бины и отправляет дальше.

eJackFilter - я так понимаю это миханизм который перехватывает запросы по маске и может их маршрутизировать?
Например можно ли разработать роутинг на основе фильтров?

Роутинг удобнее сделать на сервлете.

eJackеще какие есть области применения?

Основная область применения это реализацию AOP для сервлетов. Безопасность, логирование и другие аспекты общия для очень многих подсистем.

eJackListener - вообще не понимаю зачем это.

Просто Listener слушает какие-то события. Паттерн - Observer. Речь о каком-то конкретном?

eJackПодскажите верно лия понял инфу за первый день своего погружения? Возможно есть и другие области применения этих компонентов технологии - подскажите?

Всё это давно уже есть в виде Spring MVC. Если его по каким-то странным причинам нельзя использовать, то хотя бы подчерпните оттуда идей.

Не пытался ни кого разжалобить - излогал вводную, но не суть.
За остальное спасибо.
...
Рейтинг: 0 / 0
04.12.2012, 18:53:00
    #38064923
eJack
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Servlets
ТимоН,

ДА к сожелению использовать какие либо либы запрещенно, есть небольшой перечень акцептованых библиотек определенной версии. Вот собственно и все - по этому и городим велосипеды.
...
Рейтинг: 0 / 0
05.12.2012, 00:24:25
    #38065353
eJack
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Servlets
Вывод такой - сервлеты выполняют действия, и передают модель в jsp
Фильтры отвечают за предварительный анализ запроса, могут отправить на авторизацию или на страницу ошибки.
Понял что листенеры это реализация действий на события но пока не понял где и как можно применить.

Еще есть желание делать доработки в таком направлении:
Servlet отвечает за работу с конкретным бизнес классом - для примера возьмем клиентов. Servlet умеет получать и передавать в jsp: ◾список клиентов
◾список по фильтру
◾результаты поиска
◾добавлять/обновлять/удалять клиентов

Для этого в моем понимании такой сервлет должен содержать соответствующие методы - getListByParam(...), insert(...), ....
Тогда Filter по url (/client/insert или /client/list?page=2) понимает (например по регулярке или есть готовый механизм?) какой метод какого сервлета нужно вызвать и передает ему request и response. Метод отрабатывает и передает в jsp модель для соответсвующего View.

Вопрос - подход правильный, насколько это реализуемо?

Это некое подобие механизма ASP.NET MVC - не так давно участвовал в небольшом проекте - очень понравился подход.
...
Рейтинг: 0 / 0
05.12.2012, 05:08:09
    #38065465
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Servlets
Blazkowicz,

авторКак обычно, слезное вступление.


Совершенно лишняя ремарка.
...
Рейтинг: 0 / 0
05.12.2012, 11:34:24
    #38065798
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Servlets
NeboавторКак обычно, слезное вступление.
Совершенно лишняя ремарка.
Ваше мнение мне очень ценно. Обязательно учту.
...
Рейтинг: 0 / 0
05.12.2012, 11:37:28
    #38065807
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Servlets
eJackДля этого в моем понимании такой сервлет должен содержать соответствующие методы - getListByParam(...), insert(...), ....
Тогда Filter по url (/client/insert или /client/list?page=2) понимает (например по регулярке или есть готовый механизм?) какой метод какого сервлета нужно вызвать и передает ему request и response. Метод отрабатывает и передает в jsp модель для соответсвующего View.
можно то же самое с другой точки зрения:
- на клиенте ГУИ и другой ЯП (инкапсуляция слоя)
- на сервере в сервлетах БЛ бизнес-логика
- между ними протокол связи и канал передачи
- вызов сервлетов по URL в том числе не только в заголовке браузера, но и по аяксу

тогда имя сервлета - это имя функции по БЛ
http://www.sql.ru/forum/actualtopics.aspx?bid=38
Код: java
1.
функция-сервлет actualtopics{}


______________________________________________
"Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн.
AutoPOI.ru — ГИС-технологии для Oracle
...
Рейтинг: 0 / 0
05.12.2012, 11:43:59
    #38065828
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Servlets
eJackПонял что листенеры это реализация действий на события но пока не понял где и как можно применить.

ServletContextListener получает события запуска\остановки web-модуля. Так можно реализовать некоторую инициализацию после запуска сервера. Или, например, деактивировать пул соединений, разрегистрировать JDBC драйвера, чтобы PermGen не утёк.
HttpSessionListener - создание клиентских сессий. Например счетчик посещений реализовать.

eJackЕще есть желание делать доработки в таком направлении:
Servlet отвечает за работу с конкретным бизнес классом - для примера возьмем клиентов. Servlet умеет получать и передавать в jsp: ◾список клиентов
◾список по фильтру
◾результаты поиска
◾добавлять/обновлять/удалять клиентов

Как-то много всего для сервлета. Помимо MVC есть и другие паттерны. Контроллер только связывает View и бизнес-логику, оперируя моделью. Саму же логику, работу с источниками данных стоит реализовать отдельными классами с помощью других паттернов.


eJackДля этого в моем понимании такой сервлет должен содержать соответствующие методы - getListByParam(...), insert(...), ....
Тогда Filter по url (/client/insert или /client/list?page=2) понимает (например по регулярке или есть готовый механизм?) какой метод какого сервлета нужно вызвать и передает ему request и response. Метод отрабатывает и передает в jsp модель для соответсвующего View.
Вопрос - подход правильный, насколько это реализуемо?

Эдакий "золотой сервлет" выйдет, который всё-всё-всё реализует.
Сервлет получает HttpServletRequest - собирает из него бины Client, Order, и т.п.
Затем вызывает метод бизнес логики. Это может быть например Transaction Script aka Service. Или метод бина:
Client c = new Client(...);
c.processOrders();
Service или бин уже работает с БД через Repository/DAO
Это общераспространеный подход. Есть много других вариантов они у Фаулера в Enterprise Patterns расписаны.

После получения результата Servlet-Controller находит нужную View (jsp) и передаёт туда данные.

В продвинутых фреймверках делается что-то типа маппинга - какие запросы на какие контроллеры отправлять, чтобы не писать всё в одном сервлете. А ключевой сервлет только реализует dispatch - находит по запросу нужный контроллер.

Почитайте архитектуру Spring MVC и Struts (1й версии). Сделайте у себя так же.
...
Рейтинг: 0 / 0
05.12.2012, 13:41:48
    #38066184
eJack
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Servlets
Blazkowicz,

Большое спасибо. Да есть еще каша в голове - покурю доку по другим MVC frameworks.
В общем топик можно закрывать - всем большое спасибо.
...
Рейтинг: 0 / 0
05.12.2012, 14:25:08
    #38066280
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Servlets
eJackBlazkowicz,

Большое спасибо. Да есть еще каша в голове - покурю доку по другим MVC frameworks.
В общем топик можно закрывать - всем большое спасибо.

У меня, примерно, похожая задача и тоже каша в голове:)

Blazkowicz, Вам кстати, спасибо:), я тут много читал Ваших полезных советов.
Но видно надо время, что-бы это как-то всё улеглось в голове.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Servlets / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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