Skip to content

Commit e94672c

Browse files
committed
update servlets part
1 parent 1650111 commit e94672c

2 files changed

Lines changed: 42 additions & 0 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,7 @@
433433
+ [В чем заключаются преимущества технологии сервлетов над CGI (Common Gateway Interface)?](servlets.md#В-чем-заключаются-преимущества-технологии-сервлетов-над-cgi-common-gateway-interface)
434434
+ [Какова структура веб-проекта?](servlets.md#Какова-структура-веб-проекта)
435435
+ [Что такое _«контейнер сервлетов»_?](servlets.md#Что-такое-контейнер-сервлетов)
436+
+ [Зачем нужны сервера приложений, если есть контейнеры сервлетов?](servlets.md#Зачем-нужны-сервера-приложений-если-есть-контейнеры-сервлетов)
436437
+ [Как контейнер сервлетов управляет жизненным циклом сервлета, когда и какие методы вызываются?](servlets.md#Как-контейнер-сервлетов-управляет-жизненным-циклом-сервлета-когда-и-какие-методы-вызываются)
437438
+ [Что такое _«дескриптор развертывания»_?](servlets.md#Что-такое-дескриптор-развертывания)
438439
+ [Какие действия необходимо проделать при создании сервлетов?](servlets.md#Какие-действия-необходимо-проделать-при-создании-сервлетов)

servlets.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
+ [В чем заключаются преимущества технологии сервлетов над CGI (Common Gateway Interface)?](#В-чем-заключаются-преимущества-технологии-сервлетов-над-cgi-common-gateway-interface)
66
+ [Какова структура веб-проекта?](#Какова-структура-веб-проекта)
77
+ [Что такое _«контейнер сервлетов»_?](#Что-такое-контейнер-сервлетов)
8+
+ [Зачем нужны сервера приложений, если есть контейнеры сервлетов?](#Зачем-нужны-сервера-приложений-если-есть-контейнеры-сервлетов)
89
+ [Как контейнер сервлетов управляет жизненным циклом сервлета, когда и какие методы вызываются?](#Как-контейнер-сервлетов-управляет-жизненным-циклом-сервлета-когда-и-какие-методы-вызываются)
910
+ [Что такое _«дескриптор развертывания»_?](#Что-такое-дескриптор-развертывания)
1011
+ [Какие действия необходимо проделать при создании сервлетов?](#Какие-действия-необходимо-проделать-при-создании-сервлетов)
@@ -159,12 +160,51 @@ __Контейнер сервлетов__ — программа, предста
159160
+ Apache Tomcat
160161
+ Jetty
161162
+ JBoss
163+
+ WildFly
162164
+ GlassFish
163165
+ IBM WebSphere
164166
+ Oracle Weblogic
165167

166168
[к оглавлению](#servlets-jsp-jstl)
167169

170+
## Зачем нужны сервера приложений, если есть контейнеры сервлетов?
171+
+ __Пулы соединений с БД__
172+
+ Возможность периодического тестирования доступности СУБД и обновления соединения в случае восстановления после сбоев
173+
+ Замена прав доступа при подключении
174+
+ Балансировка нагрузки между несколькими СУБД, определение доступность или недоступность того или иного узла
175+
+ Защита пула соединений от некорректного кода в приложении, которое по недосмотру не возвращает соединения, просто отбирая его после какого-то таймаута.
176+
+ __JMS__
177+
+ Доступность сервера очередей сообщений "из-коробки".
178+
+ Возможность кластеризации очередей, т.е. доступность построения распределенных очередей, расположенных сразу на нескольких серверах, что существенно увеличивает масштабируемость и доступность приложения
179+
+ Возможность миграции очередей - в случае падения одного из серверов, его очереди автоматически перемещаются на другой, сохраняя необработанные сообщения.
180+
+ В некоторых серверах приложений поддерживается _Unit-of-Order_ - гарантированный порядок обработки сообщений, удовлетворяющих некоторым критериям.
181+
+ __JTA__ Встроенная поддержка распределенных транзакций для обеспечения согласованности данных в разные СУБД или очереди.
182+
+ __Безопасность__
183+
+ Наличие множества провайдеров безопасности и аутентификации:
184+
+ во встроенном или внешнем _LDAP-сервере_
185+
+ в базе данных
186+
+ в различных _Internet-directory_ (специализированных приложениях для управления правами доступа)
187+
+ Доступность _Single-Sign-On_ (возможности разделения пользовательской сессии между приложениями) посредством _Security Assertion Markup Language (SAML) 1/2_ или _Simple and Protected Negotiate (SPNEGO)_ и _Kerberos_: один из серверов выступает в роли базы для хранения пользователей, все другие сервера при аутентификации пользователя обращаются к этой базе.
188+
+ Возможность авторизации посредством протокола _eXtensible Access Control Markup Language (XACML)_, позволяющего описывать довольно сложные политики (например, приложение доступно пользователю только в рабочее время).
189+
+ Кластеризация всего вышеперечисленного
190+
+ __Масштабируемость и высокая доступность__ Для контейнера сервлетов обычно так же возможно настроить кластеризацию, но она будет довольно примитивной, так как в случае его использования имееются следующие ограничения:
191+
+ Сложность передачи пользовательской сессии из одного _центра обработки данных (ЦоД)_ в другой через Интернет
192+
+ Отсутствие возможности эффективно настроить репликации сессий на большом (состоящем из 40-50 экземпляров серверов) кластере
193+
+ Невозможность обеспечения миграции экземпляров приложения на другой сервер
194+
+ Недоступность механизмов автоматического мониторинга и реакции на ошибки
195+
+ __Управляемость__
196+
+ Присутствие единого центра управления, т.н. _AdminServer_ и аналога _NodeManager_’а, обеспечивающего
197+
+ Возможность одновременного запуска нескольких экземпляров сервера
198+
+ Просмотр состояния запущенных экземпляров сервера, обработчиков той или иной очереди, на том или ином сервере, количества соединений с той или иной БД
199+
+ __Административный канал и развертывание в промышленном режиме__ Некоторые сервера приложений позволяют включить так называемый "административный канал" - отдельный порт, запросы по которому имеют приоритет.
200+
+ Просмотр состояния (выполняющихся транзакций, потоков, очередей) в случае недоступности ("зависания") сервера
201+
+ Обновление приложений "на-лету", без простоя:
202+
+ добавление на сервер новой версии приложения в "закрытом" режиме, пока пользователи продолжают работать со предыдущей
203+
+ тестирование корректности развертывания новой версии
204+
+ "скрытый" перевод на использование новой версии всех пользователей
205+
206+
[к оглавлению](#servlets-jsp-jstl)
207+
168208
## Как контейнер сервлетов управляет жизненным циклом сервлета, когда и какие методы вызываются?
169209
Контейнер сервлетов управляет четырьмя фазами жизненного цикла сервлета:
170210

@@ -1314,5 +1354,6 @@ Jsp-страница, по умолчанию, всегда создает се
13141354
+ [java2ee.ru](http://www.java2ee.ru/servlets/)
13151355
+ [Java-online](http://java-online.ru/jsp-questions.xhtml)
13161356
+ [Codenet](http://www.codenet.ru/webmast/java/jsp.php)
1357+
+ [JavaTalks Articles](https://articles.javatalks.ru/articles/24)
13171358

13181359
[Вопросы для собеседования](README.md)

0 commit comments

Comments
 (0)