|
|
|
Servlets
|
|||
|---|---|---|---|
|
#18+
Всем доброго вечера. Разбираюсь с технологией сервлетов. Сейчас необходимо подключится к проекту где используются только jsp, jstl и servlet'ы. Проблема в том что я не знаком с этими технологиями и вообще я раньше писал только серверную бизнес составляющую - но работа есть работа и надо оперативно въехать в процесс, хуже всего что помочь не кому - фактически мне на поддержку и мелкие доработки падает проект после ухода сотрудника его написавшего. Так вот, пока у меня каша в голове - понятно что jsp это View и передав в jsp параметры (модель) я формирую это представление. Servlet - собственно сам контроллер, он получает из бинов необходимые данные, заполняет модель и передает ее во вью (jsp). Вывод (PrintWriter) в сервлетах не используется. Filter - я так понимаю это миханизм который перехватывает запросы по маске и может их маршрутизировать? Например можно ли разработать роутинг на основе фильтров? еще какие есть области применения? Listener - вообще не понимаю зачем это. Подскажите верно лия понял инфу за первый день своего погружения? Возможно есть и другие области применения этих компонентов технологии - подскажите? пока бегло пробежался по теме - http://docs.oracle.com/javaee/6/tutorial/doc/bnafd.html. Вообще инфы мало на эту тему - может подскажите хорошие книги или линки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2012, 13:21:55 |
|
||
|
Servlets
|
|||
|---|---|---|---|
|
#18+
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. Если его по каким-то странным причинам нельзя использовать, то хотя бы подчерпните оттуда идей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2012, 13:38:33 |
|
||
|
Servlets
|
|||
|---|---|---|---|
|
#18+
eJackТак вот, пока у меня каша в голове - понятно что jsp это View и передав в jsp параметры (модель) я формирую это представление. Servlet - собственно сам контроллер, он получает из бинов необходимые данные, заполняет модель и передает ее во вью (jsp). Вывод (PrintWriter) в сервлетах не используется. Вы не используете MVC фреймворков? (SpringMVC, Struts) eJackFilter - я так понимаю это миханизм который перехватывает запросы по маске и может их маршрутизировать? Например можно ли разработать роутинг на основе фильтров? Можно. Так устроен фронт контроллер Struts. eJackеще какие есть области применения? Безопасность (проверить залогинен ли пользователь), архивирование (gzip), преобразование(допустим обрезать картинку перед отправкой). eJackListener - вообще не понимаю зачем это. Listener'ов несколько штук. Каждый отвечает за определенный род событий происходящих в вашем приложении. Создалась сессия, поднялось ваше приложение, ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2012, 13:39:53 |
|
||
|
Servlets
|
|||
|---|---|---|---|
|
#18+
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. Если его по каким-то странным причинам нельзя использовать, то хотя бы подчерпните оттуда идей. Не пытался ни кого разжалобить - излогал вводную, но не суть. За остальное спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2012, 18:43:46 |
|
||
|
Servlets
|
|||
|---|---|---|---|
|
#18+
ТимоН, ДА к сожелению использовать какие либо либы запрещенно, есть небольшой перечень акцептованых библиотек определенной версии. Вот собственно и все - по этому и городим велосипеды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2012, 18:53:00 |
|
||
|
Servlets
|
|||
|---|---|---|---|
|
#18+
Вывод такой - сервлеты выполняют действия, и передают модель в jsp Фильтры отвечают за предварительный анализ запроса, могут отправить на авторизацию или на страницу ошибки. Понял что листенеры это реализация действий на события но пока не понял где и как можно применить. Еще есть желание делать доработки в таком направлении: Servlet отвечает за работу с конкретным бизнес классом - для примера возьмем клиентов. Servlet умеет получать и передавать в jsp: ◾список клиентов ◾список по фильтру ◾результаты поиска ◾добавлять/обновлять/удалять клиентов Для этого в моем понимании такой сервлет должен содержать соответствующие методы - getListByParam(...), insert(...), .... Тогда Filter по url (/client/insert или /client/list?page=2) понимает (например по регулярке или есть готовый механизм?) какой метод какого сервлета нужно вызвать и передает ему request и response. Метод отрабатывает и передает в jsp модель для соответсвующего View. Вопрос - подход правильный, насколько это реализуемо? Это некое подобие механизма ASP.NET MVC - не так давно участвовал в небольшом проекте - очень понравился подход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2012, 00:24:25 |
|
||
|
Servlets
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, авторКак обычно, слезное вступление. Совершенно лишняя ремарка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2012, 05:08:09 |
|
||
|
Servlets
|
|||
|---|---|---|---|
|
#18+
NeboавторКак обычно, слезное вступление. Совершенно лишняя ремарка. Ваше мнение мне очень ценно. Обязательно учту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2012, 11:34:24 |
|
||
|
Servlets
|
|||
|---|---|---|---|
|
#18+
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. ______________________________________________ "Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн. AutoPOI.ru — ГИС-технологии для Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2012, 11:37:28 |
|
||
|
Servlets
|
|||
|---|---|---|---|
|
#18+
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й версии). Сделайте у себя так же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2012, 11:43:59 |
|
||
|
Servlets
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Большое спасибо. Да есть еще каша в голове - покурю доку по другим MVC frameworks. В общем топик можно закрывать - всем большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2012, 13:41:48 |
|
||
|
Servlets
|
|||
|---|---|---|---|
|
#18+
eJackBlazkowicz, Большое спасибо. Да есть еще каша в голове - покурю доку по другим MVC frameworks. В общем топик можно закрывать - всем большое спасибо. У меня, примерно, похожая задача и тоже каша в голове:) Blazkowicz, Вам кстати, спасибо:), я тут много читал Ваших полезных советов. Но видно надо время, что-бы это как-то всё улеглось в голове. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2012, 14:25:08 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38064901&tid=2130435]: |
0ms |
get settings: |
17ms |
get forum list: |
26ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
71ms |
get topic data: |
24ms |
get forum data: |
6ms |
get page messages: |
104ms |
get tp. blocked users: |
3ms |
| others: | 322ms |
| total: | 589ms |

| 0 / 0 |
