Основы портлетов02.12.08 Сегодня я хочу рассказать об одной интересной технологии, с которой познакомился совсем недавно — это технология портлетов. Хочу показать на практике как программировать портлеты. При этом попутно вставляя какие-то теоретические сведения. А принимая во внимание, то, что документации на русском крайне мало, то рассказать об этом хочется вдвойне :) Чтобы быть немного в курсе дела, нам потребуется несколько определений: Портал в простейшем его рассмотрении — это программная платформа, содержащая портлет-контейнер, который в свою очередь поддерживает Portlet API и позволяет нам запускать портлеты. Так же помомо этого, портал обычно предоставляет средства для управления группами и пользователями, а так же широкие возможности их кастомизации. Портлет — это отдельное небольшое веб-приложение, которое выполняется на портале, портал в свою очередь агрегирует один или несколько портлетов на отдельной веб странице, которые обычно настраиваются для для отдельных пользователей и групп портала. В итоге мы получаем обычную веб-страницу, наполненную несколькими веб-приложениями. И еще, портлеты имеют много аналогий с сервлетами, я думаю, что многие, кто вообще в курсе дела, это заметят. Лишний раз проводить аналогии и останавливаться на этом не буду. В этой статье буду описывать разработку портлетов в рамках спецификации JSR 168, но не буду рассказывать о выборе портала, о его установке, деплое портлетов и т.п. Сразу скажу, что разрабатывал приложение на IBM Web Sphere Portal 6. Если кто-то расскажет об особенностях разработки и деплоя на других порталах типа Jboss Portal или еще какого, то буду очень признателен :) Итак приступим к разработке, а разрабатывать мы будем… на самом деле долго думал, что лучше привести как пример, хотел, чтобы пример не был чем-то тривиальным типа Hello World, хотел чтобы портлету нашлось практическое применение и выбор мой пал на портлет для агрегации RSS. А что? Актульно! Итак, наше мини ТЗ: Необходимо написать портлет, который будет собирать rss с различных каналов и отображать его. При этом каждому пользователю портала мы предоставим возможность самому настраивать портлет под свои нужды, т.е. создавать и удалять отображаемые каналы, а так же устанавливать количество новостей с каждого канала и частоту их обновления. Сперва давайте создадим список классов, библиотек и jsp-шек, которые потребуются нам для нашего приложения: 1) HabraRssPortlet — собственно сам класс портлета. 2) RssUtil — класс для работы с RSS. 3) rssutils — библиотека (конечно можно и самому парсер написать, но это займет время и наверняка сразу хорошо не получится — проверено опытом) 3) HabraRssPortletView.jsp — для отображения Rss. 4) HabraRssPortletEdit.jsp — для конфигурирования портлета пользователем. 5) HabraRssPortletHelp.jsp — где будет что-то типа «About» 6) portlet.xml и web.xml — ну я думаю понятно для чего… Погнали! Комментарии |
|
|