Статьи

Сервлеты 2.5: Кричать или зевать?

Это как сон, который ты пытаешься вспомнить, но он ушел,
Тогда ты пытаешься кричать, но это звучит как зевок

Ущипни меня, Barenaked Ladies

JavaWorld вчера опубликовал статью Джейсона Хантера , ведущего авторитета по сервлетам Java. В статье дается прагматичный взгляд на изменения в недавно завершенной спецификации Servlet 2.5 ( JSR 154 ).

На первый взгляд, обновленная спецификация может выглядеть довольно страшно. Сервлеты составляют основу практически всех серверных технологий веб-разработки на Java, и это последнее обновление спецификации заставляет разработчиков использовать Java 5.0 (сервлеты 2.4 работали на Java 1.3 или более поздней версии) для использования преимуществ новых языковых функций, таких как аннотации .

Аннотации позволяют перетекать ваши классы Java, методы и свойства с метками, которые компилируются в результирующие файлы классов. Когда эти классы загружены, эти аннотации могут идентифицировать, как эти классы, методы и свойства должны использоваться сервером. Например, одна из аннотаций, поддерживаемых спецификацией Servlet 2.5, позволяет пометить класс сервлета ролями безопасности, которые пользователь должен иметь для доступа к нему.

В своей статье Джейсон раскрывает, что изменения в спецификации не так радикальны, как могут показаться. Поддерживаемые новые аннотации в основном предназначены для использования с корпоративными JavaBeans (EJB), и не-EJB-серверы даже не обязаны их поддерживать. Фактически, помимо функциональности уровня EJB, все, что вы можете сделать с одной из новых аннотаций, вы все равно можете сделать с помощью знакомых инструкций в файле web.xml

Где аннотации могут повлиять на разработчиков, не являющихся EJB, находится в области производительности . Любой совместимый с Servlet 2.5 сервер, который поддерживает аннотации, должен загружать все классы в вашем веб-приложении при запуске, чтобы обработать аннотации, которые они могут содержать. Если вы не планируете использовать аннотации в своем приложении, ваш web.xmlfull="true"<web-app>

 <web-app xmlns="http://java.sun.com/xml/ns/javaee"
    version="2.5" full="true">
  ...
</web-app>

Оставшиеся существенные изменения в спецификации Servlet 2.5 добавляют несколько незначительных удобных функций в процесс отображения сервлетов и фильтров на URL-адреса в файле web.xml Ничего не стоит потерять сон, во всяком случае.

Результатом всего этого является то, что с практической точки зрения у вас нет особых причин спешить с переходом веб-приложений на Java к спецификации Servlet 2.5. Фактически, если вы не планируете использовать новый стандарт EJB 3.0 для Enterprise JavaBeans, который опирается на некоторые функции аннотации спецификации, все, что делает Servlet 2.5, ограничивает вас развертыванием на платформах, поддерживающих Java 5.0.