![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
x4444 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 7.2.2006 Репутация: 1 Всего: 1 |
Читаю статью про паттрен Intercepting Filter и не пойму что за интерфейс такой Processor и что за класс AuthenticationFilter?
статья: http://java.sun.com/blueprints/corej2eepat...tingFilter.html по-русски: http://javagu.ru/portal/dt?last=false&...U_SECTION_80703 Это сообщение отредактировал(а) x4444 - 22.1.2007, 14:30 |
|||
|
||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 11 Всего: 77 |
"Бибигон и Брундуляк... всё просто. Не было никакого индюка, это такая красивая легенда. Был петух!"(с)камеди клаб
Смотри. Есть у тебя 10 страничек: "купить", "заказать", "продать", "перевести деньги", "просмотреть эксклюзивный список своих любовниц" и проч. Понятно что для каждого - своё. Но! Каждый из этих страничек может быть доступна. Другое дело, что когда простой гражданин попадает на неё - неясно, можно ли показывать ему список чьих-то любовниц? Да и вообще - чьих именно??? Выходит, надо залогиниться? Но если всё-таки не залогинился - на каждой из этих страничек надо вставлять проверку "залогинился ли он" и сообщение "залогинься, скотина беспардонная!" если он внаглую лезет. Как добьёмся такого? - прально, копипэйстом! Но копипэйст - неправильно. Вдруг вместо "скотина беспардонная" захочешь писать "уважаемый". Придётся везде править(а где-то забудешь - обидятся). Можно проверялку какую-то вставить. Но её вызывать тоже отовсюду надо.... А тут можно решить как... все запросы ко всем твоим страничкам сначала попадают на фильтр. Там можно реализовать всё общее, что нужно для проверки залогинености и сообщению "скотине" этого нелицеприятного факта его биографии. То есть пришёл запрос - вперёд, в чистилище фильтр - залогинен? - пжалте - ваши любовницы! Не залогинен??? - "залогинься, скотина беспардонная!" И странице списка любовниц или распоряжения твоим счётом пофик что да как - она уверенна что ты уже успешно прошёл "чистилище", иначе к ней порсто не попал бы Ну, конечно, этотолько приём программирования. Можно туда впихнуть всё общее для набора страницчто считаешь нужным, примеры на джавагуре есть. ![]() -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
chief39, это 5+ !!!
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
chief39 |
|
||||||||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 11 Всего: 77 |
Ай-яй! Пардон! Совсем перестал в детали вникать - слона-то я и не приметил!
"Крокодил и солнце... Оооо... Это самый страшный день в моей жизни! Просыпаюсь я как-то под чудо-деревом.... В ХЛАМ!!! Смотрю! - на небе два солнца! Одно такое.. с загнутыми лучами... немецкое!"(с) С него и начнём: Processor. В статье он не описан, но. Скорее всего, исходя просто из логики примера - это должен быть просто интерфейс-маркер. Который показывает, что данный класс у нас тоже может являтся процессором входящего запроса. Но, судя по логике и назначению, в интерфейсе должен быть один важный метод, который делает его не только маркером, но и, собббсно, процессором: public void execute(ServletRequest req, ServletResponse res) throws IOException, ServletException Кто бы у нас там не был процессором и что бы он не делал - мы знаем, что если кто-то у нас является процессором(имплементит интерфейс) - то мы зовём его execute() - и пусть себе "процессит" наш запрос. То есть процессор - это звено в цепи обработки - все они одинаковые снаружи - можем добавить новое или убрать парочку. В примере так и пишут:
И погнали реализацию конкретного фильтра(процессора):
Ну и, кроме того, ещё у них всех есть конструктор, который может принимать в качестве аргумента другой фильтр (не обязательно такой же класс, а класс с таким же интерфейсом processor) "А второе - наше!.... В виде звезды! Звезда.. по имени Солнце! всё просто... даа.... вот"(с) AuthenticationFilter - это, ещё одно звено. Один из процессоров. Авторы, очевидно, посчитали что название говорит самоза себя. То есть, это очередное звено в цепи, как пример - функциональностью его является - аутентификация. Показывать нюансы аутентификации и кучу всякой специфики некой абстрактной системы посчитали ненужным. Да оно и вправду перегрузило бы пример. Сделали по принципу: что делает - из названия ясно, необходимо будет - читатель сам реализует мелочи аутентификации при необходимости. Тем более, у каждого может быть по-разному оформлена. "Всё началось с ЧУДО-дерева. Иду я как-то по просёлку - ГЛЯ! - чудоо.... ну, тогда это ещё был куст... но потооом.. всё выыыросло.. плодов стало бооольше - ЧУДО-ДЕРЕВО. Так я стал детским... ПИИИ-сателем!"(с) ![]() Это сообщение отредактировал(а) chief39 - 23.1.2007, 16:06 -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
||||||||
|
|||||||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |