Спецификация Java-портлетов
(
англ.
Java Portlet Specification
) описывает
модель взаимодействия
между
портлетом
и портлетным контейнером. Эта спецификация очень похожа на спецификацию Java-сервлетов (
англ.
Java Servlet Specification
) и, фактически, разработана на основе
Java Servlet Specification
версии 2.3 и
Java Server Pages
версии 1.2
.
Версии
JSR 168
Первая версия спецификации Java-портлетов (V1.0) была разработана в рамках
Java Community Process
, как ответ на запрос на спецификацию JSR 168
. Запрос был инициирован представителями компаний
IBM
и
Sun Microsystems, Inc.
в январе
2002 года
. Финальная версия спецификации была представлена
27 октября
2003 года
.
Спецификация предоставляет описание базовой программной модели портлета, в том числе:
-
две фазы жизненного цикла портлета: фазу действий и фазу рендеринга, что позволяет использовать
шаблон проектирования
Model-View-Controller
-
режимы портлета, при помощи которых портал может указать портлету, какую задачу тот должен выполнить и какое содержание отобразить
-
параметры отображения, описывающие место на странице, в котором будет размещен контент, генерируемый портлетом
-
модель данных
портлета, позволяющая хранить информацию о виде в параметрах отображения, сессионные данные в параметрах сессии портлета, а пользовательские настройки в параметрах самого портлета
-
компоновка в пакеты, что подразумевает группировку нескольких портлетов и артефактов
Java EE
, необходимых для функционирования этих портлетов, в единое портлетное приложение, которое можно установить на
сервер приложений
одним блоком
JSR 286
В
2005 году
представителем компании IBM был инициирован запрос на спецификацию JSR 286, в котором предлагалось создать новую версию спецификации Java-портлетов для согласования с концепциями J2EE версии 1.4, а также другими JSR (например, c JSR 188) и спецификацией
второй версии.
. Предыдущая версия спецификации JSR 168 никак не затрагивала проблемы интеграции, определяя только компонентную модель. Поэтому вопросы интеграции и межпортлетной коммуникации предлагалось специфицировать в новой версии. Работы над второй версией (V2.0) продлились до
12 июня
2008 года
, когда её финальный релиз был утверждён экспертной группой, включающей в себя всех значимых разработчиков порталов, как коммерческих, так и с
открытым кодом
, разработчиков средств интеграции портлетов и разработчиков сред разработки портлетов
.
Вторая версия спецификации привносит целый ряд новых возможностей для разработчиков портлетов, в том числе:
-
два способа взаимодействия между различными портлетами:
-
через систему событий, что реализовано моделью слабой связи вида «публикатор-подписчик», когда один портлет может получить извещение о выполнении другим портлетом каких-либо действий
-
через публикуемые параметры отображения, что позволяет совместно использовать параметры запроса в различных портлетах или других артефактах
-
возможность использования динамически генерируемых ресурсов посредством ресурсных
URL
, поддерживающих несколько уровней кеширования
-
полноценное использование
AJAX
, с прохождением запроса непосредственно через портальный сервлет, и, как следствие, получением полного доступа к контексту портлета — параметрам отображения, режиму работы, состоянию окна, настройкам портлета и портлетной сессии
-
возможность вызова forward и полноценного include из всех методов жизненного цикла портлета
-
расширенный список слушателей жизненного цикла, по сравнению с определённым в Java Servlet Specification V2.5
-
новые фильтры и слушатели (
англ.
listeners
) портлетов
-
управляемые портлетом режимы, которые не определяются в портале, а управляются непосредственно портлетом
-
опции времени выполнения контейнера портлетов
Кроме этого, была проделана большая работа по расширению программной модели портлетов, приблизив её к программной модели сервлетов и добавив специфические для портлетов расширения. Реализована работа с
cookies
, элементами заголовка документа и HTTP-заголовками.
JSR 362
В 2013 году работа над спецификацией была продолжена, и в апреле 2017 года была выпущена версия 3.0. Основными её особенностями стали:
-
ресурсные зависимости;
-
явной состояние рендеринга;
-
интеграция с CDI 1.2;
-
поддержка Servlet 3.1;
-
Portlet Hub & XHR IPC;
-
интеграция с FacesBridge (
).
Обратная совместимость
Третья версия бинарно совместима со второй, которая, в свою очередь, бинарно обратно совместима с первой версией и даже сохраняет совместимость поведения всех методов
API
. Это значит, что все портлеты, разработанные в рамках версии 1.0, могут быть запущены без всяких изменений в контейнере версии 2.0
.
Примечания
-
↑
David DeWolf.
(англ.)
. developer.com (8 сентября 2005). Дата обращения: 24 апреля 2013.
1 мая 2013 года.
-
от 27 октября 2020 на
Wayback Machine
(англ.)
-
от 8 июня 2012 на
Wayback Machine
(англ.)
-
↑
Стефан Хеппер.
(рус.)
developerWorks
.
IBM
(3 апреля 2009). Дата обращения: 25 апреля 2013.
1 мая 2013 года.
См. также
Ссылки
|
Платформы
|
|
Технологии
Sun
|
|
Основные сторонние технологии
|
|
История
|
|
Свойства языка
|
|
Скриптовые языки
|
|
Конференции Java
|
|