Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Servlets технология 
V
    Опции темы
EJack
Дата 3.12.2012, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 4.9.2007

Репутация: нет
Всего: нет



Всем доброго вечера. Разбираюсь с технологией сервлетов. Сейчас необходимо подключится к проекту где используются только jsp, jstl и servlet'ы.
Проблема в том что я не знаком с этими технологиями и вообще я раньше писал только серверную бизнес составляющую - но работа есть работа и надо оперативно въехать в процесс, хуже всего что помочь не кому - фактически мне на поддержку и мелкие доработки падает проект после ухода сотрудника его написавшего.

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

Подскажите верно лия понял инфу за первый день своего погружения? Возможно есть и другие области применения этих компонентов технологии - подскажите?
пока бегло пробежался по теме - http://docs.oracle.com/javaee/6/tutorial/doc/bnafd.html.
Вообще инфы мало на эту тему - может подскажите хорошие книги или линки.

Заранее спасибо!
PM MAIL   Вверх
AntonSaburov
Дата 4.12.2012, 13:11 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Воощем-то правильно ты понимаешь. Что касается листенеров - они используются для обработки событий, происходящих с приложением - старт, остановка, изменение атрибутов в сессии и пр.

Посмотри вот это - я писал это правда дано, но по-моему до сих пор там есть что смотреть.
http://java-course.ru/students/students.php?name=part7
http://java-course.ru/students/students.php?name=part8
http://java-course.ru/students/students.php?name=part9
PM MAIL WWW ICQ   Вверх
EJack
Дата 4.12.2012, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 4.9.2007

Репутация: нет
Всего: нет



Спасибо, почитал, кое что может пригодиться.
Вывод такой - сервлеты выполняют действия, и передают модель в jsp
Фильтры отвечают за предварительный анализ запроса, могут отправить на авторизацию или на страницу ошибки.
Понял что листенеры это реализация действий на события но пока не понял где и как можно применить.

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

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

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

Это некое подобие механизма ASP.NET MVC - не так давно участвовал в небольшом проекте - очень понравился подход.


PM MAIL   Вверх
4epT
Дата 5.12.2012, 11:39 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 784
Регистрация: 13.8.2007

Репутация: 3
Всего: 3



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

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

Да, подход правильный. Можно сделать вот как... Делается mapping сервлета на некую маску запроса:

Код

@WebServlet(name = "ClientServlet", urlPatterns = {"/client/*"})


Выше указан маппинг через аннотации, точно так же дается и через xml (web.xml).

Далее в сервлете при запросе client/insert или client/list выполняем следующий код:

Код

            String action = request.getPathInfo();
        
            if(action == null || action.isEmpty()){
                throw new Exception("Action is null");
            }

            // Отрезаем первый '/'
            action = action.substring(1);


Послсе этого в action будет непосредственно действие: insert, delete, list ...

Ну и далее в зависимости от action, вызывается нужный метод.
PM MAIL   Вверх
EJack
Дата 5.12.2012, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 4.9.2007

Репутация: нет
Всего: нет



Да огромное спасибо именно это и хотел!

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0625 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.