`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Tomcat 6: временное затишье

Статья опубликована в №3 (571) от 23 января

0 
 

В конце минувшего года одна за другой увидели свет несколько новых реализаций сервера Tomcat 6 - в настоящее время разработчикам уже доступна бета-версия Tomcat 6.0.7. Следовательно, пришло время хотя бы в общих чертах познакомиться с возможностями, которые предоставляет разработчикам Web-приложений текущий релиз данного продукта.

Сервер Tomcat по-прежнему доступен всем: каждый желающий может получить его, обратившись по адресу tomcat.apache.org. По сравнению с пятой версией процедура установки не изменилась, нужно только распаковать архив (tar для UNIX или zip для Windows) в выбранный каталог и ввести его имя в качестве значения переменной окружения CATALINA_HOME. Кроме того, необходимо создать переменную окружения JAVA_HOME, указывающую на каталог JDK. Но если для работы Tomcat 5 достаточно было JDK 1.3, то шестая версия с негодованием отвергнет любые реализации Java Development Kit ниже 1.5. Такое ограничение напрямую диктуется спецификацией Servlet 2.5, но на самом деле оно существенно расширяет возможности разработчиков, позволяя им использовать богатые языковые средства J2SE 5.0. Причем при создании сервлетов доступны не только конструкции, непосредственно влияющие на формирование байтового кода, но и аннотации - мощный инструмент для работы с метаданными.

Если авторы простых JSP-документов могут и не знать, что такое дескриптор доставки приложения, то создателям сервлетов приходится непосредственно изменять содержимое файла web.xml. Как известно, этот файл определяет структуру Web-приложения и взаимосвязь его компонентов. По-видимому, разработчики новой версии Tomcat решили, что правила, регламентирующие содержимое этого файла, неоправданно строги, и сняли ряд ограничений. Теперь, формируя дескриптор доставки приложения, программист может, например, связывать сервлет с несколькими URL. Так, если автор сервлета Myservlet хочет проявить заботу о тех пользователях, которым пришлось долго поработать с JWS и другими подобными серверами, он может включить в состав элемента два выражения: /Myservlet и /servlet/Myservlet. Теперь даже тот, кто по привычке укажет перед именем сервлета каталог /servlet, попадет по нужному адресу.

Как известно, в элементе допустимы символы групповых операций. Например, если включить в него выражение /*, любой запрос к серверу, в том числе обращения к документам JSP, будет обработан сервлетом, заданным посредством . Таким образом, данный сервлет станет "парадным входом" для всех запросов. Он сможет анализировать полученные данные, перенаправлять их другим сервлетам и JSP-документам, отвергать запросы, пришедшие с плохо зарекомендовавших себя узлов, перераспределять задания по разным компьютерам для выравнивания нагрузки и выполнять множество других задач. В новой версии Tomcat подобный подход применим и для фильтров. Если запрос, адресованный к любому из сервлетов, расположенных на сервере, требует стандартной предварительной обработки, обеспечить ее можно, включив в элемент выражение *. В результате обращение к любому сервлету будет сначала обработано фильтром, указанным с помощью элемента (более подробно вопросы создания сервлетов-фильтров и организации конвейерной обработки HTTP-запросов рассматривались ранее).

В свое время одним из важных новшеств Tomcat 5 была поддержка языка Expression Language (EL), и разработчики шестой версии позаботились о его дальнейшем развитии. Дело в том, что данный язык используется не только для создания документов JavaServer Pages, но и в рамках JavaServer Faces. Для каждой из этих технологий EL имеет ряд отличий, и программист, применяющий обе, подчас может путаться и чувствовать себя не очень комфортно. Поэтому в Tomcat 6 предусмотрена поддержка Unified Expression Language - унифицированного языка выражений, который наряду с уже привычными возможностями реализует отложенное вычисление выражений, установку значений и обращение к методам. Кроме того, обеспечена совместимость отложенных вычислений с дескрипторами-итераторами библиотеки JSTL. Новый язык может в неизменном виде применяться как в JSP, так и в JSF, что, несомненно, повысит качество работы программистов, использующих обе технологии.

Разработчики Tomcat 6 не забыли и о тех, кому "тесно" в рамках протокола HTTP 1.1. Теперь в первой строке HTTP-запроса могут присутствовать не только GET, POST, PUT, HEAD и другие привычные методы, но также LOCK, UNLOCK и прочие, определенные WebDAV. Для их обработки в пакет org.apache.catalina.servlets включен класс WebdavServlet, содержащий функции doLock(), doUnlock() и т. д. WebdavServlet является потомком широко распространенного класса HttpServlet, поэтому, выбрав для сервлета суперкласс WebdavServlet вместо привычного HttpServlet, можно легко производить обработку самых разнообразных запросов.

Очевидно, что в отличие от пятой версии изменения, внесенные в Tomcat 6, нельзя назвать революционными. Это вполне объяснимо. Требуется определенное время, чтобы новшества глобального характера, реализованные еще в Tomcat 5, нашли свое место в повседневной практике и стали привычными. Лишь после этого у программистов станут появляться новые требования и начнется очередной этап погони за идеалом.

JavaServer Faces

Технология JavaServer Faces известна достаточно давно. Первый вариант спецификации, JSF 1.0, появился в 2004 г., а последний, JSF 1.2, - более полугода назад. На первый взгляд, приложение, созданное с использованием JSF, ничем не отличается от обычного Web-приложения. Оно реализуется на базе известной архитектуры "модель-представление-контроллер" (MVC, model-view-controller), в его состав входят сервлеты, JSP-документы и статические HTML-страницы, а взаимодействие между клиентской и серверной частью осуществляется посредством привычного всем протокола HTTP. Разница же состоит в том, что технология JSF позволяет использовать для обработки событий, сгенерированных клиентом, программы, расположенные на стороне сервера. Таким образом, JSF можно рассматривать как попытку (причем весьма удачную) приблизить сетевые приложения к обычным Java-программам.

Основным элементом всех JSF-приложений является сервлет FacesServlet. Именно к нему поступает запрос клиента, содержащий сведения о состоянии текущей страницы. Сервлет анализирует запрос и восстанавливает дерево интерфейсных элементов, отображаемых на стороне клиента. На основе информации, содержащейся в составе запроса, генерируется объект события, который передается соответствующему обработчику (на сегодняшний день поддерживаются только ActionEvent и ValueChangedEvent). Несмотря на то что процедура обработки запроса чрезвычайно сложна, она полностью скрыта от разработчика. Все, что нужно для успешного использования технологии JSF, - установить необходимые библиотеки и правильно сформировать дескриптор доставки приложения (файл web.xml).

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

0 
 

Напечатать Отправить другу

Читайте также

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT