Технологии и фреймворки представлений Java - это веб- библиотеки программного обеспечения, которые обеспечивают пользовательский интерфейс или « уровень представления » веб-приложений Java . Такие каркасы приложений используются для определения веб-страниц и обработки HTTP- запросов (кликов), генерируемых этими веб-страницами. Как подкатегория веб-фреймворков , фреймворки уровня представления часто в той или иной степени перекрываются с веб-фреймворками, которые предоставляют другие функции для веб-приложений Java.
Структуры уровня представления Java часто утверждают, что поддерживают часть или весь шаблон проектирования модель – представление – контроллер .
С одного взгляда
Фреймворки, основанные на действиях: | Apache Struts , Spring MVC |
---|---|
Компонентные фреймворки: | Apache Click , Apache Tapestry , Apache Wicket , JavaServer Faces |
Системы веб-шаблонов: | Плитки Apache , SiteMesh , Thymeleaf |
- JavaServer Faces (JSF), Apache Tapestry и Apache Wicket - это конкурирующие компонентные технологии, абстрагирующие цикл HTTP-запрос-ответ без сохранения состояния и API сервлетов Java за объектно-ориентированной компонентной моделью, управляемой событиями.
- Напротив, Struts и Spring MVC Framework - это среды, ориентированные на действия, которые обеспечивают более тонкий уровень абстракции над API сервлетов .
- Apache Tiles - это шаблонный фреймворк, разработанный для работы со Struts.
- Facelets - это технология определения представлений и шаблонов, предназначенная для работы с JSF.
- SiteMesh можно использовать с любым JSP .
- Facelets, Tapestry и Wicket имеют свои собственные подходы к созданию шаблонов, основанные на HTML / XHTML .
- Apache Click использует шаблоны Apache Velocity на основе HTML и простые старые объекты Java с необязательными JavaServer Pages .
Сервлет API
API сервлетов является основой почти всех технологий Java Web View. Сервлет предоставляет основной механизм для написания классов Java для веб-приложений. Сервлеты могут отвечать на HTTP-запросы, создавать файлы cookie и поддерживать сеансы.
JavaServer Pages (JSP)
- Построенный на основе Servlet API, JSP предоставляет ориентированные на документы, основанные на тегах шаблоны, серверную модель программирования, которая может генерировать множество форм текстового контента.
- Код Java может быть встроен в файлы JSP и компилируется и выполняется при получении запроса.
Стойки Apache
- Struts обеспечивает разделение Контроллера и Представления.
- Запросы принимаются Java-классом (контроллером), который может решить, какое представление отображать.
- Фактическое представление может быть написано с использованием различных технологий представления, таких как JSP, бесплатный шаблон маркера, шаблон скорости и т. Д.
- Файл конфигурации XML используется для указания «навигации по страницам», т. Е. Потока запроса к соответствующему контроллеру, и того, какое представление отображать в зависимости от результата работы контроллера.
- Конкурент : Spring MVC, Grails
Гобелен Apache
- Каркас представления на основе компонентов.
- Классы записываются как объекты POJO, а байт-код преобразуется во время выполнения.
- Сконфигурирован с использованием аннотаций и соглашений об именах, а не XML
- По сравнению с JSP обеспечивает четкое разделение разметки HTML и кода Java.
- HTML-шаблоны могут быть предварительно просмотрены веб-дизайнерами.
- Измененные классы компонентов загружаются в работающее приложение в реальном времени для более быстрой разработки.
- Использует шаблон навигации « Опубликовать / Перенаправить / Получить» для отправки формы.
- Конкурент : Wicket, JSF, HybridJava.
Apache Wicket
- Каркас представления на основе компонентов.
- Страницы напрямую взаимодействуют с компонентами Java с отслеживанием состояния на сервере.
- Компоненты и их состояние управляются фреймворком Wicket, освобождая разработчика приложения от необходимости напрямую использовать HttpSession для управления состоянием.
- Не требует XML для настройки.
- По сравнению с JSP обеспечивает четкое разделение разметки HTML и кода Java.
- Компоненты веб-страницы «вставляются» в разметку HTML из кода.
- Конкурент : Tapestry, JSF, HybridJava.
JavaServer Faces (JSF) и Facelets
- Спецификация компонентных фреймворков представления.
- Доступны реализации Mojarra и Apache MyFaces.
- Обычно использует Facelets для создания шаблонов на основе XML / XHTML.
- Классы записываются как объекты POJO с аннотациями или файлами конфигурации XML, используемыми для связывания их с шаблонами страниц и компонентов.
- Unified Expression Language позволяет связующий компонент поля и события в свойствах фасоли POJO и методов.
- Ограничения преобразования и проверки могут быть указаны в Facelets и применяются автоматически, что обычно приводит к повторной публикации той же страницы с информацией об ошибках в случае сбоя.
- Навигация может осуществляться с помощью правил файла конфигурации или непосредственно на странице.
- Может прозрачно поддерживать Ajax .
- Конкурент : калитка, гобелен.
SiteMesh
- SiteMesh - это структура HTML-шаблонов, основанная на модели «Украшение».
- Он позволяет создавать шаблон «украшения», который затем применяется к любому другому HTML для создания нового HTML.
- Вновь созданный HTML-код содержит элементы исходного HTML-кода, смешанные с шаблоном.
- Это позволяет сделать исходный HTML очень простым и лишенным каких-либо спецификаций форматирования или компоновки. В шаблоне, в свою очередь, нет никакой актуальной информации.
- Их смешение обеспечивает единообразный внешний вид всех веб-страниц .
- Конкурент : Tiles
Искра
- Создайте микросхему веб-инфраструктуры, основанную на простой системе маршрутизации.
- По умолчанию он работает на встроенном веб-сервере Jetty , но его можно настроить для работы на других веб-серверах.
- Он поддерживает три различных движка шаблонов: Velocity , FreeMarker и Mustache.
- Он нацелен на ускорение разработки и не использует аннотации или проприетарные решения.
Смотрите также
- Список фреймворков веб-сервисов
- Технология сервлетов Java
- Технология JavaServer Pages
- Документация Apache Struts 2
- Плитки Apache
- Щелкните Документация по проекту Framework
- Apache Wicket
- Домашняя страница гобелена
- Домашняя страница HybridJava
- Домашняя страница Spark
- Список технологий Java