В чем разница между JSF, Servlet и JSP?

Как JSP и Servlet связаны друг с другом? Является ли JSP сервлетом? Как JSP и JSF связаны друг с другом? Является ли JSF каким-то предварительным созданием JSP, подобным ASP.NET-MVC?

Ответ 1

JSP (JavaServer Pages)

JSP - это технология представления Java, работающая на сервере, которая позволяет вам писать текст шаблона на клиентских языках (таких как HTML, CSS, JavaScript и т.д.). JSP поддерживает библиотеки тегов, которые поддерживаются фрагментами кода Java, которые позволяют вам динамически управлять потоком страниц или выводом. Хорошо известный taglib - это JSTL. JSP также поддерживает язык выражений, который можно использовать для доступа к данным бэкэнда (с помощью атрибутов, доступных на странице, в области запросов, сеансов и приложений), в основном в сочетании с метками тегов.

Когда JSP запрашивается в первый раз или когда веб-приложение запускается, контейнер сервлета скомпилирует его в класс, расширяющий HttpServlet и будет использовать его в течение времени жизни веб-приложения. Вы можете найти сгенерированный исходный код в рабочем каталоге сервера. Например, Tomcat, это каталог /work. По запросу JSP контейнер сервлета выполнит скомпилированный класс JSP и отправит сгенерированный вывод (обычно просто HTML/CSS/JS) через веб-сервер по сети на сторону клиента, которая, в свою очередь, отобразит его в веб-браузере.

сервлеты

Сервлет - это интерфейс прикладного программирования (API) Java, работающий на сервере, который перехватывает запросы, сделанные клиентом, и генерирует/отправляет ответ. Хорошо известным примером является HttpServlet который предоставляет методы для перехвата HTTP- запросов с использованием популярных методов HTTP, таких как GET и POST. Вы можете настроить HttpServlet для прослушивания определенного шаблона HTTP-URL-адреса, который настраивается в web.xml или, более недавно, в Java EE 6 с аннотацией @WebServlet.

Когда сервлет запрашивается впервые или во время запуска веб-приложения, контейнер сервлета создаст его экземпляр и сохранит его в памяти в течение срока службы веб-приложения. Один и тот же экземпляр будет повторно использоваться для каждого входящего запроса, URL-адрес которого соответствует шаблону URL-адреса сервлета. Вы можете получить доступ к данным запроса с помощью HttpServletRequest и обработать ответ с помощью HttpServletResponse. Оба объекта доступны в качестве аргументов метода внутри любого из переопределенных методов HttpServlet, таких как doGet() и doPost().

JSF (JavaServer Faces)

JSF - это основанная на компонентах инфраструктура MVC, которая построена поверх API сервлета и предоставляет компоненты через библиотеки тегов, которые можно использовать в JSP или любой другой технологии представления на основе Java, такой как Facelets. Facelets гораздо больше подходит для JSF, чем JSP. Он, в частности, предоставляет большие возможности шаблонизации, такие как составные компоненты, в то время как JSP в основном предлагает только <jsp:include> для шаблонизации в JSF, так что вы вынуждены создавать пользовательские компоненты с необработанным кодом Java (который немного непрозрачен и много трудоемкой работы), когда вы хотите заменить повторяющуюся группу компонентов одним компонентом. Начиная с JSF 2.0, JSP устарела как технология просмотра в пользу Facelets.

Примечание: сама JSP НЕ устарела, только комбинация JSF с JSP устарела.

Примечание: JSP обладает большими возможностями шаблонизации с помощью Taglibs, особенно вариант (Tag File). JSP шаблонов в сочетании с JSF - это то, чего не хватает.

Будучи инфраструктурой MVC (Model-View-Controller), JSF предоставляет FacesServlet в качестве единственного контроллера запроса-ответа. Он берет на себя всю стандартную и утомительную работу по запросам/ответам HTTP, такую как сбор пользовательского ввода, проверка/преобразование его, помещение их в объекты модели, вызов действий и рендеринг ответа. Таким образом, вы в конечном итоге получите страницу JSP или Facelets (XHTML) для View и класс JavaBean как Model. Компоненты JSF используются для привязки представления к модели (как это делает ваш веб-элемент управления ASP.NET), а FacesServlet использует дерево компонентов JSF для выполнения всей работы.

Смежные вопросы

Ответ 2

См. http://www.oracle.com/technetwork/java/faq-137059.html

Технология JSP является частью Java технологии семьи. Страницы JSP: скомпилирован в сервлеты и может вызывать Компоненты JavaBeans (beans) или Компоненты Enterprise JavaBeans (предприятие beans) для выполнения обработки на сервере. Таким образом, JSP технология является ключевым компонентом масштабируемая архитектура для веб-приложения.

См. https://jcp.org/en/introduction/faq

A: Технология JavaServer Faces - это структура для создания пользовательских интерфейсов для веб-приложений. JavaServer Faces технология включает в себя:

Набор API для: представления пользовательского интерфейса компонентов и управления их состоянием, обработки событий и проверки ввода, определение навигации по страницам и поддержки интернационализации и доступность.

Пользовательский тег JavaServer Pages (JSP) библиотека для выражения JavaServer Интерфейс Faces на странице JSP.

JSP - это специализированный сервлет.

JSF - это набор тегов, которые вы можете использовать с JSP.

Ответ 3

С точки зрения браузера/клиента

JSP и JSF выглядят одинаково, поскольку в соответствии с требованиями приложений JSP больше подходит для приложений, основанных на запросах.

JSF предназначен для более богатых веб-приложений, основанных на событиях. Я вижу событие более зернистым, чем запрос/ответ.

С точки зрения сервера

Страница JSP преобразуется в сервлет и имеет минимальное поведение.

Страница JSF преобразуется в дерево компонентов (специализированным FacesServlet), и он следует за жизненным циклом компонента, определенным спецификацией.

Ответ 4

Сервлеты:

API Java Servlet позволяет разработчикам Java писать серверный код для доставки динамического веб-контента. Как и другие проприетарные веб-серверы API, API-интерфейс Java Servlet предлагает улучшенную производительность по сравнению с CGI; однако он имеет некоторые ключевые дополнительные преимущества. Поскольку сервлеты были закодированные в Java, они обеспечивают объектно-ориентированный подход (OO) и, что более важно, могут работать на любой платформе. Таким образом, код был переносимым на любой хост, поддерживающий Java. Сервлеты в значительной степени способствовали популярности Java, поскольку он стал широко использоваться технологии для разработки веб-приложений на стороне сервера.

JSP:

JSP построен поверх сервлетов и обеспечивает более простой, основанный на странице решение для создания большого количества динамического содержимого HTML для Интернета пользовательских интерфейсов. JavaServer Pages позволяет веб-разработчикам и дизайнерам просто редактировать HTML-страницы со специальными тегами для динамического Java части. JavaServer Pages работает, имея специальный сервлет, известный как контейнер JSP, который установлен на веб-сервере и обрабатывает все Запросы просмотра страницы JSP. Контейнер JSP переводит запрошенный JSP в код сервлета, который затем скомпилирован и сразу же выполняется. Последующие запросы на одну страницу просто вызовут сервлет выполнения для страницы. Если в JSP на сервере внесено изменение, запрос для его просмотра запускается другой перевод, компиляция и перезапуск сервлет времени выполнения.

JSF:

JavaServer Faces - стандартная среда Java для создания пользователя интерфейсы для веб-приложений. Самое главное, это упрощает разработка пользовательского интерфейса, который часто является одним из наиболее сложные и утомительные части разработки веб-приложений.
Хотя можно создавать пользовательские интерфейсы, используя основополагающие Веб-технологии Java (такие как сервлеты Java и страницы JavaServer) без всеобъемлющей структуры, предназначенной для корпоративных веб-сайтов разработки приложений, эти основные технологии часто могут привести к проблемы развития и обслуживания. Что более важно, когда разработчики достигнут решения по качеству производства, тот же набор проблем, решаемых JSF, будет решен в нестандартный. JavaServer Faces предназначен для упрощения разработка пользовательских интерфейсов для веб-приложений Java в следующими способами:
• Он обеспечивает компонентную, клиент-независимый подход к созданию веб-пользователя интерфейсов, что повышает производительность и простоту использования разработчика.
• Это упрощает доступ и управление данными приложения из Веб-интерфейс пользователя.
• Он автоматически управляет пользовательским интерфейсом состояния между несколькими запросами и несколькими клиентами в простой и ненавязчивый способ.
• Он обеспечивает структуру разработки, которая дружелюбный к разнообразной аудитории разработчиков с различными наборами навыков.
• В нем описывается стандартный набор архитектурных шаблонов для сети приложение.

[Источник: Полная ссылка: JSF]

Ответ 5

Есть также ситуации, когда вы можете поддержать JSP над JSF. Характер применения должен быть решающим фактором для выбора технологии.

Если у вас богатое взаимодействие с графическим интерфейсом и много требуемых сценариев Java, то вы можете использовать JSF. В принципе, если ваша архитектура графического интерфейса похожа на компонентный, ориентированный и даже управляемый как Swing, тогда JSF является лучшим.

Если приложение является простой отправкой формы, не требуется много взаимодействия с графическим интерфейсом, тогда JSP может преуспеть, если изучение новой технологии является накладными расходами, а также сложной структурой нет необходимости.

Ответ 6

Servlet - это боковой слой сервера java.

  • JSP - это сервлет с html
  • JSF - это база компонентов в тегах libs
  • JSP - он был преобразован в сервлет один раз, когда сервер получил запрос.

Ответ 7

что верно, что JSP преобразуется в сервлет во время выполнения, а JSF - совершенно новая вещь, чтобы сделать веб-страницу более читаемой, поскольку JSF позволяет писать все структуры программирования в виде тега.

Ответ 8

Основное отличие между сервлетами и JSP заключается в том, что в сервлетах мы пишем java-код и вставляем HTML-код, и есть только обратный случай с JSP. В JSP мы пишем HTML-код и добавляем код Java, используя теги, предоставленные JSP.

Ответ 9

Java Server Pages (JSP) - это технология Java, которая позволяет веб-разработчикам и дизайнерам быстро разрабатывать и легко поддерживать насыщенные информацией динамические веб-страницы, которые используют существующие бизнес-системы. Технология JSP отделяет пользовательский интерфейс от генерации контента, позволяя дизайнерам изменять общий макет страницы без изменения базового динамического контента.

Facelets - это первый не-JSP язык объявления страниц, разработанный для JSF (Java Server Faces), который предоставил разработчикам JSF более простую и мощную модель программирования по сравнению с JSP. Это решает различные проблемы, возникающие в JSP для разработки веб-приложений.

Вот таблица, которая сравнивает особенности скриптов и лицевых граней:

enter image description here Источник

Ответ 10

JSP:means HTML+Java Code:

JSP имеет собственный жизненный цикл jsp_init() jsp_service() jsp_destroy

После первого запроса JSP конвертируется в .java файл. Существует три типа тегов, которые мы используем. 1.) безскриптовый

<%  %>

Здесь разработчик может объявить все те вещи, которые разработчик хочет взять с собой.

2.) Тег выражения

<%=  %>

Здесь разработчик может использовать некоторые данные, относящиеся к печати

3) Декларация

<!% %>

Здесь разработчик может объявить некоторые связанные с методом данные.

Servlet:

Сервл имеет собственный жизненный цикл.

init()
service()
destroy()

После первого контейнера запроса будут считываться данные из файла web.xml то после приветствия заполнение будет отображаться.
Теперь, после выполнения действия, он будет искать URL-адрес, и после этого процесса он будет искать конкретный сервлет там. будет выполняться операция обслуживания.

JSF:

JSF имеет свой собственный ui, и его жизненный цикл может выполняться шестью способами,

A)Restore view phase
B)Apply request values phase
C)Process validations phase
D)Update model values phase
E)Invoke application phase
F)Render response phase

Здесь для таблицы здесь используется панель с сеткой, и для этого есть разные грани.

Rich Faces
Prime Faces.

Ответ 11

Jsp также имеет встроенный код сервлета, который не нуждается в какой-либо внешней компиляции, которую он может запускать напрямую. Изменения вступят в силу в jsp непосредственно в браузере.

Сервлет необходимо скомпилировать (т.е. он будет иметь определенное создание класса)

Jsf - это компонент представления MVC Framework

Ответ 12

JSP означает JAVA SERVER PAGE........ jsp не является сервлетом. Jsp использует код и HTML-тег как сам по себе, вам не нужно делать HTML и сервлет seprately.Jsp играют великолепную роль в веб-приложении. Servlet - это класс Java, который играет роль, чтобы сделать вашу HTML-страницу статичной и динамической.

Ответ 13

  • JSF - это веб-приложение, которое используется для упрощения интеграции с веб-интерфейсами; JSP - это технология на основе Java, используемая специально для того, чтобы помочь разработчикам программного обеспечения создавать динамические веб-страницы.

  • JSF содержит несколько основных функций, включая, помимо прочего, Managed Beans, систему компонентов на основе шаблонов и две библиотеки тегов на основе XML; JSP должен быть скомпилирован в байт-коде Java для правильной работы.

Ответ 14

JSP - это компонент View MVC (Model View Controller). Контроллер принимает входящий запрос и передает его в Модель, которая может быть bean, которая делает доступ к базе данных. Затем JSP форматирует вывод с использованием HTML, CSS и JavaScript, и затем результат отправляется обратно запрашивающему.

Ответ 15

JSF - это усовершенствованная инфраструктура, в которой ее очень просто реализовать архитектуру на основе Model-View-Controller (MVC) для проектов. Основным преимуществом JSF над JSP является простое динамическое рендеринг компонентов в браузере на основе условий и простая интеграция событий ajax.

Передняя часть приложения JSF, то есть файлы xhtml, являются теми, которые отображаются пользователю через браузер. Эти xhtml файлы внутренне вызывают управляемый beans, например. контроллеры, в которых записана фактическая логика приложения.

Контроллеры внутренне вызывают различные службы, которые обмениваются данными с базой данных (используя Hibernate или JPA API). Так происходит короткое течение.

JSF также используется в сочетании с RichFaces, который является основой для предоставления богатого внешнего вида вашему веб-приложению.

JSF + RichFaces + Hibernate/JPA - хорошая технология, чтобы научиться точно!

Ответ 16

Сервлеты - это серверные Java-программы, которые выполняются внутри веб-контейнера. Основной целью сервлета является обработка запросов, полученных от клиента.

Java Server Pages используется для создания динамических веб-страниц. Jsp были введены для написания кода Java плюс HTML в одном файле, что было нелегко сделать в программе сервлетов. И файл jsp преобразуется в сервлет Java, когда он переведен.

Java Server Faces - это веб-инфраструктура MVC, которая упрощает разработку пользовательского интерфейса.