Was ist der Unterschied zwischen einem Portlet und einem Servlet?

Lesezeit: 6 Minuten

Benutzer-Avatar
Rajesh

Ich werde gebeten, an Portlets und Portalen zu arbeiten.

Ich möchte den Unterschied zwischen einem Portlet und einem Servlet wissen?

Wie / wo unterscheidet sich ein Portlet (möglicherweise funktional) von einem Servlet?

Benutzer-Avatar
Ashok Goli

Von der Quelle verbessert: Servlets vs. Portlets

Ähnlichkeiten

  1. Servlets und Portlets sind webbasierte Komponenten, die Java für ihre Implementierung verwenden.

  2. Portlets werden von einem Portlet-Container verwaltet, genau wie Servlets von Servlet-Containern verwaltet werden.

  3. Sowohl statische als auch dynamische Inhalte können von Portlets und Servlets generiert werden.

  4. Der Lebenszyklus von Portlets und Servlets wird vom Container gesteuert

  5. Das Client/Server-Modell wird sowohl für Servlets als auch für Portlets verwendet

  6. Die Paketierung und Bereitstellung sind im Wesentlichen gleich, WAR/EARs.

  7. Anwendungssitzung ist sowohl in Servlet- als auch in Portlet-Containern vorhanden. Dies ist eine der Möglichkeiten, Daten (rohe Inter-Portlet-Kommunikation) von der Wiedergabephase bis zur Aktionsphase (oder irgendwelchen niedrigeren Phasen) in den Portlet-Containern zu teilen.

  8. Sowohl Servlets als auch Portlets verwenden ähnliche Server-/VM-Umgebungen, die dies unterstützen. Bei Portlets sind jedoch möglicherweise einige zusätzliche Konfigurationen erforderlich, damit es funktioniert

  9. Die Build-/DI-Tools sind für beide ähnlich – Ant, Maven, Gradle usw. werden alle unterstützt. Meistens 🙂 – Das hat sich mit Liferay 7 etwas geändert.


Unterschiede

  1. Servlets können vollständige Webseiten rendern, während Portlets HTML-Fragmente rendern. Diese Fragmente werden vom Portal zu einer vollständigen Webseite aggregiert.

  2. Der Inhaltstyp von JSR 168-Portlets kann nur cHTML, XHTML, WML sein. Andere Inhaltstypen werden nicht unterstützt.

  3. Portlets dürfen keinen HTML-Code generieren, der Tags wie body, frame, frameset, head, html oder title enthält.

  4. An ein Portlet ist im Gegensatz zu einem Servlet keine URL angehängt, sodass nicht direkt darauf zugegriffen werden kann. Der Zugriff erfolgt nur über die Portalseite, die das Portlet enthält.

  5. Portlets können mit Steuerelementen versehen werden, um ihre Fensterzustände oder Portletmodi zu manipulieren.

  6. Mehrere Instanzen eines einzelnen Portlets können auf derselben Seite platziert werden.

  7. Portlets unterstützen dauerhafte Konfiguration und Anpassung sowie Profilinformationen.

  8. Portlets können zwei Arten von Anfragen haben, nämlich. Renderanfrage und Aktionsanfrage.

  9. Portlets haben zwei Gültigkeitsbereiche innerhalb einer Sitzung; Anwendungsbereich für die portletübergreifende Kommunikation und Portletbereich für die Intra-Portlet-Kommunikation.

  10. Das Portlet kann weder die Zeichensatzcodierung der Antwort noch die HTTP-Antwortheader festlegen.

  11. Portlets haben keinen Zugriff auf die Anforderungs-URL. Es kann also nicht auf die an die URL angehängten Abfrageparameter zugreifen. Portlets können keine Cookies setzen.

  12. Typische Methoden der Portlet-API sind doView(), doEdit(), doHelp() und
    processAction() während die von servlet sind service(), doPost(),
    doGet().

  13. Servlet-Spezifikationen – JSR 369 (Servlet 4.0), JSR 340 (Servlet 3.1), JSR 315 (Servlet 3.0), JSR 154 (Servlet 2.5 & 2.4).
    Portlet-Spezifikationen – JSR 168 (Portlet-Spezifikation v1.0), JSR 286 (Portlet-Spezifikation v2.0), JSR 362 (Portlet-Spezifikation v3.0)

  14. Die Bereitstellung von Portlets beinhaltet einen anderen Ansatz als eine Servlet-Anwendung. Einige Anbieter (Liferay/Alfresco/WebSphere) unterstützen das Hot-Deployment von Portlets, ohne dass der Server neu gestartet werden muss, was im Fall von Servlets nicht möglich ist, ohne die Anwendung mithilfe spezieller Bibliotheken wie OSGi zu modularisieren.


Bearbeiten (Aus Kommentaren)

Ein Portlet-Container baut auf einem Servlet-Container auf. Letztendlich kann also gesagt werden, dass das Portlet auf einem Servlet-Container läuft. Aber während der Entwicklung von Apps betrachten wir einen Portlet-Container separat vom Servlet/Java EE-Container.

  • Eine Portalanwendung läuft also in einem Servlet/JEE-Container und kommuniziert separat mit einem Portlet-Container? Der Computer des Clients (Browser) kennt den Portlet-Container oder die Portlets nicht, wie ich es verstehe, außer dem Erscheinungsbild auf der Seite, das über JavaScript und teilweise Seitenaktualisierungen gehandhabt wird.

    – Andy

    14. November 2013 um 14:54 Uhr

  • Ein Portlet-Container baut auf einem Servlet-Container auf. Man kann sagen, dass ein Portlet-Container ein fortgeschrittener Servlet-Container mit vielen „Features“ ist. Aber um deine Frage ganz klar zu beantworten, ja. Bei der Entwicklung von Apps betrachten wir einen Portlet-Container separat vom Servlet/JEE-Container.

    – Ashok Goli

    15. November 2013 um 2:57 Uhr

  • Die einfachste Art, sich das vorzustellen, ist, dass ein Servlet eine ganze Webseite rendert und ein Portlet einen bestimmten rechteckigen Teil (Unterabschnitt) einer Webseite rendert. Beispielsweise könnte die Werbeleiste auf der rechten Seite einer Nachrichtenseite als Portlet gerendert werden. Aber Sie würden kein einzelnes Bearbeitungsfeld als Portlet implementieren, weil das zu granular ist. Wenn Sie eine Webseite in ihre wichtigsten Teilbereiche aufteilen, sind diese grundsätzlich gute Kandidaten, um sie in Portlets umzuwandeln.

    Benutzer2080225

    2. Februar 2014 um 6:03 Uhr

  • @ClayFerguson “ein Portlet rendert einen bestimmten rechteckigen Teil (Unterabschnitt) einer Webseite”, also ist es wie ein Rahmen oder ein

    – Der Student

    7. März 2017 um 14:17 Uhr

  • @TomBrito – Teilweise wahr. Es ist wie ein Frame oder ein Div, die ihre eigenen Lebenszyklen haben und Daten mit anderen Frames oder Divs teilen können.

    – Ashok Goli

    8. März 2017 um 6:35 Uhr

Benutzer-Avatar
Spitzenkoch

Portlets sind Teil des JSR-168-Standards, der Portalcontainer und -komponenten regelt. Dies ist ein anderer Standard als Standards für Webcontainer (und Servlets). Obwohl es definitiv starke Parallelen zwischen diesen beiden Standards gibt, unterscheiden sie sich in Containern, APIs, Lebenszyklus, Konfiguration, Bereitstellung usw.

Der Hauptunterschied zwischen Portlet und Servlet könnte sein, dass das Servlet zwar immer auf einen einzigen Aktionstyp reagiert – AnfragePortlet (aufgrund seines Lebenszyklus und stärkerer Containerbindungen) muss auf zwei Arten von Aktionen reagieren: machen und Anfrage. Natürlich gibt es noch mehr, aber ich fand dies als den Hauptunterschied zwischen den beiden, als ich Portalentwicklung studierte.

  • Update: Portlets 1 ist JSR 168Portlets 2 ist JSR 286und Portlet 3 ist JSR 362.

    – Basilikum Bourque

    4. Juni 2020 um 3:36 Uhr


Sowohl Portlets als auch Servlets empfangen eine HTTP-Anforderung und geben eine Antwort zurück, die normalerweise HTML ist, das von einem Browser wiedergegeben werden kann. Ein Portlet wird im Zusammenhang mit einem “Portal” verwendet, wobei die Idee darin besteht, dass eine einzelne Seite, die der Benutzer sieht, viele Teile hat, denken Sie an Kacheln, die jeweils von einem anderen Portlet stammen.

Jetzt können Sie diesen „gekachelten“ Effekt von normalen Serts erhalten (siehe Struts + Tiles für ein Beispiel dafür). Das zusätzliche Bit von den Portlets besteht darin, dass sich die Portlets in einer reichhaltigeren Umgebung befinden, die vom Portal bereitgestellt wird, zusätzliche APIs werden bereitgestellt, damit Was von jedem Portlet angezeigt wird, kann von einzelnen Benutzern nach ihren Vorlieben konfiguriert werden, und die Portlets können miteinander kommunizieren – drücken Sie in einem eine Taste, in einem anderen passiert etwas.

Servlets haben eine Java-Definition (Anwendungen, die HTTP GET/POST-Anforderungen verarbeiten), während Portlets eine Benutzeroberflächendefinition haben. Sie müssen nicht notwendigerweise serverseitig durch Servlets unterstützt werden. Aber der Portlet-Standard wurde parallel zu Java entwickelt. O’Reilly hat ein nettes Lernprogramm.

Im Wesentlichen bieten Servlets Inhalte, die normalerweise die gesamte Seite in einem Browser einnehmen (es sei denn, Sie verwenden Frames), und Portlets bieten Inhalte, die von einem Fenster umschlossen sind. Mit Portlets können Sie mehrere Portlets nebeneinander haben, und jedes kann Inhalte und Funktionen bereitstellen, die sich vom anderen unterscheiden. Ein Portlet kann die vollständige Interaktion für einen Anwendungstyp bereitstellen, während ein anderes Portlet Inhalt für einen anderen Anwendungstyp bereitstellen kann. Das Portal kann einige Verwaltungsfunktionen und einen gesicherten zentralen Zugangspunkt zu allen Portlets auf einer Seite bereitstellen. Bezüglich der Einzelheiten (Ähnlichkeiten/Unterschiede) zwischen ihnen lesen Sie bitte weiter. Hier sind einige Gemeinsamkeiten: Servlets und Portlets sind webbasierte Komponenten, die Java für ihre Implementierung verwenden. Portlets werden von einem Portlet-Container verwaltet, der einem Servlet-Container ähnelt. Beide Komponenten generieren Inhalte, die statisch oder dynamisch sein können

1290930cookie-checkWas ist der Unterschied zwischen einem Portlet und einem Servlet?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy