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