it-swarm.com.de

Was ist der Unterschied zwischen JSF, Servlet und JSP?

Wie hängen JSP und Servlet zusammen? Ist JSP eine Art Servlet? Wie hängen JSP und JSF zusammen? Handelt es sich bei JSF um eine vorab erstellte UI-basierte JSP wie ASP.NET-MVC?

795
Cheung

JSP (JavaServer Pages)

JSP ist eine Java-View-Technologie , die auf dem Server-Computer ausgeführt wird und das Schreiben von Vorlagentext in clientseitigen Sprachen (wie HTML, CSS, JavaScript usw.) ermöglicht. ). JSP unterstützt taglibs , die durch Teile von Java - Code unterstützt werden, mit denen Sie den Seitenfluss steuern oder dynamisch ausgeben können. Eine bekannte Taglib ist JSTL . JSP unterstützt auch Expression Language , mit dem auf Backend-Daten zugegriffen werden kann (über Attribute, die in den Bereichen page, request, session und application verfügbar sind), meist in Kombination mit Taglibs.

Wenn eine JSP zum ersten Mal angefordert wird oder wenn die Web-App gestartet wird, wird sie vom Servlet-Container in eine Klasse kompiliert, die HttpServlet erweitert und während der Lebensdauer der Web-App verwendet. Sie finden den generierten Quellcode im Arbeitsverzeichnis des Servers. Im Beispiel Tomcat ist dies das Verzeichnis /work. Bei einer JSP-Anforderung führt der Servlet-Container die kompilierte JSP-Klasse aus und sendet die generierte Ausgabe (normalerweise nur HTML/CSS/JS) über den Webserver über ein Netzwerk an den Client, der sie wiederum im Webbrowser anzeigt.

Servlets

Servlet ist eine Java Application Programming Interface (API) , die auf dem Server-Computer ausgeführt wird und vom Client gesendete Anforderungen abfängt und eine Antwort generiert/sendet. Ein bekanntes Beispiel ist HttpServlet, das Methoden zum Einbinden von HTTP - Anforderungen mithilfe der gängigen HTTP-Methoden wie GET und POST bereitstellt. Sie können HttpServlets so konfigurieren, dass ein bestimmtes HTTP-URL-Muster abgehört wird, das in web.xml oder in jüngerer Zeit mit Java EE 6 mit @WebServlet-Annotation konfiguriert werden kann.

Wenn ein Servlet zum ersten Mal angefordert wird oder während des Starts einer Webanwendung, erstellt der Servlet-Container eine Instanz davon und speichert sie während der Lebensdauer der Webanwendung im Speicher. Dieselbe Instanz wird für jede eingehende Anforderung wiederverwendet, deren URL mit dem URL-Muster des Servlets übereinstimmt. Sie können über HttpServletRequest auf die Anforderungsdaten zugreifen und die Antwort über HttpServletResponse bearbeiten. Beide Objekte sind als Methodenargumente in einer der überschriebenen Methoden von HttpServlet verfügbar, z. B. doGet() und doPost().

JSF (JavaServer Faces)

JSF ist ein komponentenbasiertes MVC-Framework , das auf der Servlet-API aufbaut und Komponenten über Taglibs bereitstellt, die in JSP oder verwendet werden können Jede andere Java -basierte View-Technologie wie Facelets . Facelets ist für JSF viel besser geeignet als für JSP. Es bietet großartige Vorlagenfunktionen wie z. B. Verbundkomponenten , während JSP im Grunde nur den <jsp:include> für Vorlagen in JSF bietet, sodass Sie gezwungen sind, benutzerdefinierte Komponenten mit raw Java Code (der ein bisschen undurchsichtig und mühsam ist), wenn Sie eine wiederholte Gruppe von Komponenten durch eine einzelne Komponente ersetzen möchten. Seit JSF 2.0 ist JSP als View-Technologie zugunsten von Facelets veraltet.

Hinweis : JSP selbst ist NICHT veraltet, nur die Kombination von JSF mit JSP ist veraltet.

Hinweis : JSP verfügt über hervorragende Vorlagenfunktionen mithilfe von Taglibs, insbesondere der Variante ( Tag File ). Es fehlt an JSP-Templaten in Kombination mit JSF.

Als MVC-Framework ( Model-View-Controller ) stellt JSF FacesServlet als einzige Anforderungs-Antwort Controllerzur Verfügung. Sie können alle Standard- und langwierigen HTTP-Anforderungen und -Antworten erfassen, validieren/konvertieren, in Modellobjekte einfügen, Aktionen aufrufen und die Antwort rendern. Auf diese Weise erhalten Sie im Grunde eine JSP- oder Facelets-Seite (XHTML) für Viewund eine JavaBean-Klasse als Model. Die JSF-Komponenten werden verwendet, um die Ansicht an das Modell zu binden (wie es Ihr ASP.NET-Websteuerelement tut), und FacesServlet verwendet den JSF-Komponentenbaum, um die gesamte Arbeit zu erledigen.

Verwandte Fragen

1183
BalusC

Siehe http://www.Oracle.com/technetwork/Java/faq-137059.html

Die JSP-Technologie gehört zur Technologiefamilie Java. JSP-Seiten werden in Servlets kompiliert und können JavaBeans-Komponenten (Beans) oder Enterprise JavaBeans-Komponenten (Enterprise Beans) aufrufen, um die Verarbeitung auf dem Server durchzuführen. Daher ist die JSP-Technologie eine Schlüsselkomponente in einer hochskalierbaren Architektur für webbasierte Anwendungen.

Siehe https://jcp.org/en/introduction/faq

A: Die JavaServer Faces-Technologie ist ein Framework zum Erstellen von Benutzeroberflächen für Webanwendungen. Die JavaServer Faces-Technologie umfasst:

Eine Reihe von APIs für: die Darstellung von UI-Komponenten und die Verwaltung ihres Status, die Verarbeitung von Ereignissen und die Validierung von Eingaben, die Definition der Seitennavigation sowie die Unterstützung von Internationalisierung und Barrierefreiheit.

Eine benutzerdefinierte Tag-Bibliothek für JavaServer Pages (JSP) zum Ausdrücken einer JavaServer Faces-Schnittstelle innerhalb einer JSP-Seite.

JSP ist eine spezielle Art von Servlet.

JSF ist eine Gruppe von Tags, die Sie mit JSP verwenden können.

78
S.Lott

Aus Browser-/Client-Sicht

JSP und JSF sehen beide gleich aus. Gemäß den Anwendungsanforderungen ist JSP besser für Anwendungen geeignet, die auf Anforderungen und Antworten basieren.

JSF ist auf umfangreichere ereignisbasierte Webanwendungen ausgerichtet. Ich sehe das Ereignis als viel detaillierter als die Anforderung/Antwort.

Aus Serverperspektive

Die JSP-Seite wird in ein Servlet konvertiert und weist nur ein minimales Verhalten auf.

Die JSF-Seite wird in einen Komponentenbaum konvertiert (von einem spezialisierten FacesServlet) und folgt dem durch die Spezifikation definierten Komponentenlebenszyklus.

31
Vh24

Servlets:

Mit der Servlet-API Java können Java Entwickler serverseitigen Code für die Bereitstellung dynamischer Webinhalte schreiben. Wie andere proprietäre Webserver-APIs bot auch die Servlet-API Java eine verbesserte Leistung gegenüber CGI. Es hat jedoch einige wichtige zusätzliche Vorteile. Da Servlets in Java codiert wurden, bieten sie einen objektorientierten Entwurfsansatz (OO) und können, was noch wichtiger ist, auf jeder Plattform ausgeführt werden. Daher war derselbe Code auf jeden Host übertragbar, der Java unterstützte. Servlets trugen wesentlich zur Popularität von Java bei, da es eine weit verbreitete Technologie für die serverseitige Entwicklung von Webanwendungen wurde.

JSP:

JSP baut auf Servlets auf und bietet eine einfachere, seitenbasierte Lösung zum Generieren großer Mengen dynamischer HTML-Inhalte für Webbenutzeroberflächen. Mit JavaServer Pages können Webentwickler und -designer einfach HTML-Seiten mit speziellen Tags für die dynamischen Teile Java bearbeiten. JavaServer Pages verfügt über ein spezielles Servlet, einen JSP-Container, der auf einem Webserver installiert ist und alle JSP-Seitenaufrufanforderungen verarbeitet. Der JSP-Container übersetzt eine angeforderte JSP in Servlet-Code, der dann kompiliert und sofort ausgeführt wird. Nachfolgende Anforderungen an dieselbe Seite rufen einfach das Laufzeitservlet für die Seite auf. Wenn eine Änderung an der JSP auf dem Server vorgenommen wird, löst eine Anforderung zum Anzeigen eine weitere Übersetzung, Kompilierung und einen Neustart des Laufzeitservlets aus.

JSF:

JavaServer Faces ist ein Standard-Framework Java zum Erstellen von Benutzeroberflächen für Webanwendungen. Am wichtigsten ist, dass die Entwicklung der Benutzeroberfläche vereinfacht wird, was häufig einer der schwierigeren und mühsameren Teile der Entwicklung von Webanwendungen ist.
Obwohl es möglich ist, Benutzeroberflächen mithilfe grundlegender Java Webtechnologien (wie Java Servlets und JavaServer Pages) ohne ein umfassendes Framework für die Entwicklung von Unternehmens-Webanwendungen zu erstellen, Diese Kerntechnologien können häufig zu einer Vielzahl von Entwicklungs- und Wartungsproblemen führen. Noch wichtiger ist, dass zu dem Zeitpunkt, zu dem die Entwickler eine Lösung in Produktionsqualität erreichen, die gleichen Probleme, die von JSF gelöst wurden, auf eine nicht standardmäßige Weise gelöst wurden. JavaServer Faces soll die Entwicklung von Benutzeroberflächen für Java Webanwendungen auf folgende Weise vereinfachen:
• Es bietet einen komponentenzentrierten, clientunabhängigen Entwicklungsansatz zum Erstellen von Webbenutzeroberflächen, wodurch die Entwicklerproduktivität und die Benutzerfreundlichkeit verbessert werden.
• Es vereinfacht den Zugriff auf und die Verwaltung von Anwendungsdaten über die Web-Benutzeroberfläche.
• Der Benutzeroberflächenstatus zwischen mehreren Anforderungen und mehreren Clients wird automatisch auf einfache und unauffällige Weise verwaltet.
• Es bietet ein Entwicklungsframework, das für ein vielfältiges Entwicklerpublikum mit unterschiedlichen Fähigkeiten geeignet ist.
• Es beschreibt einen Standardsatz von Architekturmustern für eine Webanwendung.

[ Quelle: Vollständige Referenz: JSF]

22
Kishor Prakash

Es gibt auch Situationen, in denen Sie JSP gegenüber JSF bevorzugen können. Die Art der Anwendung sollte der entscheidende Faktor für die Auswahl der Technologie sein.

Wenn Sie eine reichhaltige GUI-Interaktion haben und viel Java Scripting benötigen, dann bevorzugen Sie JSF. Grundsätzlich ist JSF die beste Lösung, wenn Ihre GUI-App-Architektur komponentenorientiert und sogar wie Swing gesteuert ist.

Wenn es sich bei der Anwendung nur um ein einfaches Formular handelt, für das nicht viel GUI-Interaktion erforderlich ist, kann JSP eine gute Leistung erbringen, wenn das Erlernen einer neuen Technologie ein Overhead ist und auch ein komplexes Framework nicht erforderlich ist.

16
Karthi

Servlet - es ist die serverseitige Ebene Java.

  • JSP - es ist Servlet mit HTML
  • JSF - Komponenten basieren auf Tag-Bibliotheken
  • JSP - wird einmal in Servlet konvertiert, wenn der Server eine Anfrage erhält.
12
cackle

das ist wahr, dass JSP zum Zeitpunkt der Ausführung in Servlet konvertiert wird, und JSF ist eine völlig neue Sache, um die Lesbarkeit der Webseite zu verbessern, da JSF das Schreiben aller Programmierstrukturen in Form von Tags ermöglicht.

10
mahesh

Der grundlegende Unterschied zwischen Servlets und JSP besteht darin, dass wir in Servlets Java Code schreiben und darin HTML-Code einbetten und bei JSP nur die umgekehrte Schreibweise vorliegt. In JSP schreiben wir HTML-Code und binden Java-Code mithilfe von Tags ein, die von JSP bereitgestellt werden.

5
user3608245

Java Server Pages (JSP) ist eine Java Technologie, mit der Webentwickler und -designer schnell und einfach informationsreiche dynamische Webseiten, die vorhandene Geschäftssysteme nutzen. Die JSP-Technologie trennt die Benutzeroberfläche von der Inhaltserstellung, sodass Designer das gesamte Seitenlayout ändern können, ohne den zugrunde liegenden dynamischen Inhalt zu ändern.

Facelets ist die erste Nicht-JSP-Seitendeklarationssprache für JSF (Java Server Faces) , die den JSF-Entwicklern im Vergleich zu JSP ein einfacheres und leistungsfähigeres Programmiermodell lieferten. Es behebt verschiedene Probleme, die in JSP für die Entwicklung von Webanwendungen auftreten.

In der folgenden Tabelle werden die Merkmale von Scriplets und Facelets verglichen:

enter image description hereQuelle

5
Yster
JSP:means HTML+Java Code:

JSP hat einen eigenen Lebenszyklus jsp_init () jsp_service () jsp_destroy

Nach der ersten Anforderung konvertiert JSP in eine .Java-Datei. Es gibt drei Arten von Tags, die wir verwenden
1.) Skriptlos

<%  %>

Hier kann der Entwickler all die Dinge deklarieren, die der Entwickler mit den Daten aufnehmen möchte

2.) Expressions-Tag

<%=  %>

Hier kann der Entwickler einige druckbezogene Daten verwenden

3.) Erklärung

<!% %>

Hier kann der Entwickler einige methodenbezogene Daten deklarieren.

Servlet:

Servlet hat einen eigenen Lebenszyklus.

init()
service()
destroy()

Nach der ersten Anfrage liest der Container die Daten aus der Datei "web.xml" und nach der Begrüßung wird "fill" angezeigt.
Nach der Ausführung der Aktion durchsucht es nun die URL und nach diesem Vorgang durchsucht es das jeweilige Servlet selbst. Servicebetrieb wird ausgeführt.

JSF:

JSF hat eine eigene Benutzeroberfläche und sein Lebenszyklus kann auf sechs Arten ablaufen.

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

Für UI hier für Tabelle hier verwenden wir Panel-Raster und es gibt verschiedene Gesichter dafür, das heißt.

Rich Faces
Prime Faces.
0
Ankit