it-swarm.com.de

Was ist Java Servlet?

Ich habe viele Artikel gelesen, um Java-Servlet zu verstehen, aber es gelang mir nicht.

Können Sie uns bitte kurz Java-Servlets (in einfacher Sprache) vorstellen? Was ist Servlet? Was sind die Vorteile? Und all das. 

Ich kann den Unterschied zwischen serverseitigen Programmiersprachen (PHP, ASP) und Servlets nicht verstehen.

222
hardik

Ein Servlet ist einfach eine Klasse, die auf eine bestimmte Art von Netzwerkanforderung antwortet - meistens eine HTTP-Anforderung. Grundsätzlich werden Servlets normalerweise für die Implementierung von Webanwendungen verwendet. Es gibt jedoch auch verschiedene Frameworks, die auf Servlets (z. B. Struts) basieren und eine Abstraktion auf höherer Ebene als die Ebenen "Hier ist eine HTTP-Anforderung, in diese HTTP-Antwort schreiben" geben zu Verfügung stellen.

Servlets werden in einem servlet-Container ausgeführt, der die Netzwerkseite behandelt (z. B. Analyse einer HTTP-Anforderung, Verbindungsverarbeitung usw.). Einer der bekanntesten Open-Source-Servlet-Container ist Tomcat .

262
Jon Skeet

Ein Servlet im Kern ist eine Java-Klasse. die HTTP-Anforderungen verarbeiten kann ..__ Normalerweise wird das interne Lesen des HTTP-Antrags und der Antwort über die Leitung von den Containern wie Tomcat erledigt. Dies ist so, dass Sie sich als serverseitiger Entwickler auf das konzentrieren können, was mit der HTTP-Anforderung und den Antworten zu tun ist, und sich nicht mit Code beschäftigen müssen, der sich mit Netzwerken usw. befasst. Der Container kümmert sich beispielsweise um das Einpacken der gesamten Sache HTTP-Antwortobjekt und senden Sie es an den Client (zB einen Browser).

Nun stellt sich die nächste logische Frage, wer entscheidet, was ein Container tun soll. Und die Antwort lautet: Zumindest in der Java-Welt wird es von Spezifikationen geleitet (Anmerkung ich habe das Wort nicht kontrolliert). Beispielsweise bestimmen die Servlet-Spezifikationen (siehe Ressource 2), was ein Servlet tun kann. Wenn Sie also eine Implementierung für die Spezifikation schreiben können, beglückwünschen Sie, dass Sie gerade einen Container erstellt haben (Technisch implementieren Container wie Tomcat auch andere Spezifikationen und machen komplizierte Dinge wie benutzerdefinierte Klassenlader usw., aber Sie haben die Idee).

Unter der Annahme, dass Sie über einen Container verfügen, sind Ihre Servlets jetzt Java-Klassen, deren Lebenszyklus vom Container verwaltet wird, deren Reaktion auf eingehende HTTP-Anforderungen jedoch von Ihnen entschieden wird. Sie tun dies, indem Sie in die vordefinierten Methoden wie init (), doGet (), doPost () usw. What-you-want-do-do schreiben. Siehe Ressource 3.

Hier ist eine lustige Übung für Sie. Erstellen Sie ein einfaches Servlet wie in Ressource 3, und schreiben Sie einige System.out.println () - Anweisungen in seine Konstruktormethode (Ja, Sie können einen Konstruktor eines Servlets haben), init (), doGet (), doPost () und run das Servlet in Tomcat. Siehe Konsolenprotokolle und Tomcat-Protokolle.

Hoffe das hilft, fröhliches Lernen.

Ressourcen

  1. Schauen Sie, wie das HTTP-Servlet hier aussieht (Beispiel: Tomcat).

  2. Servlet Spezifikation .

  3. Einfaches Servlet Beispiel .

  4. Beginnen Sie mit dem Lesen von book online/PDF Außerdem können Sie das gesamte Buch herunterladen. Vielleicht hilft dies. Wenn Sie gerade Servlets starten, ist es eine gute Idee, das Material zusammen mit der Servlet-API zu lesen. Es ist ein langsamer Lernprozess, aber es ist viel hilfreicher, die Grundlagen zu klären.

74
Ayusman

Zusätzlich zu den oben genannten, und nur um die Blutung offensichtlich zu machen ...

Für viele ist das offensichtlich, aber für jemanden, der gewöhnt ist, Apps zu schreiben, die einfach ausgeführt werden und dann enden: Ein Servlet verbringt die meiste Zeit damit, nichts zu tun ... er wartet darauf, etwas gesendet zu werden, eine Anfrage und reagiert darauf . Aus diesem Grund hat ein Servlet eine Lebenszeit: Es wird initalisiert und wartet dann auf alles, was darauf geworfen wird, und wird dann zerstört. Was bedeutet, dass es von etwas anderem (einem Framework) erstellt (und später zerstört) werden muss, dass es in einem eigenen Thread oder Prozess ausgeführt wird und nichts tut, wenn es nicht dazu aufgefordert wird. Und auch, dass auf irgendeine Weise ein Mechanismus implementiert werden muss, durch den diese "Entität" auf Anforderungen "hören" kann.

Ich schlage vor, dass das Lesen von Threads, Prozessen und Sockets etwas Licht in dieses Licht bringt: Es unterscheidet sich ganz von der Funktionsweise einer einfachen "Hallo Welt" -App.

Man könnte argumentieren, dass der Begriff "Server" oder "Servlet" ein bisschen übertrieben ist. Ein rationaler und einfacher Name könnte "Responder" sein.

25
mike rodent

Wenn Sie Anfänger sind, denke ich, dass dieses Tutorial die Grundidee über WHAT SERVLET IST ... vermittelt. 

Einige wertvolle Punkte sind unten angegeben.

Die Servlet-Technologie wird zum Erstellen von Webanwendungen verwendet, die sich auf der Serverseite befinden und dynamische Webseiten generieren.

Servlet kann je nach Kontext auf verschiedene Arten beschrieben werden.

  • Servlet ist eine Technologie, d. H. Zur Erstellung einer Webanwendung.
  • Servlet ist eine API, die viele Schnittstellen und Klassen bereitstellt, einschließlich Dokumentationen
  • Servlet ist eine Schnittstelle, die zum Erstellen eines Servlets implementiert werden muss.
  • Servlet ist eine Klasse, die die Fähigkeiten der Server erweitert und Auf die eingehende Anforderung reagiert. Es kann auf alle Arten von Anfragen reagieren.
  • Servlet ist eine Webkomponente, die auf dem Server bereitgestellt wird, um eine Dynamische Webseite zu erstellen Referenz: Here .
5
Sandun Madola

Servlet ist eine serverseitige Technologie, mit der dynamische Webseiten in Webanwendungen erstellt werden. Tatsächlich ist Servlet eine API, die aus einer Gruppe von Klassen und Schnittstellen besteht, die über einige Funktionen verfügt. Wenn wir die Servlet-API verwenden, können wir vordefinierte Funktionen von Servlet-Klassen und Schnittstellen verwenden.

Lebenszyklus von Servlet:

Der Webcontainer verwaltet den Lebenszyklus der Servlet-Instanz.

1. Servlet-Klasse geladen

2. Servlet-Instanz erstellt

3 . init () -Methode wird aufgerufen

4. Service () -Methode aufgerufen

5. Zerstörte () - Methode aufgerufen

Wenn die Anforderung von Client (Browser) ausgelöst wird, prüft der Web-Container, ob das Servlet ausgeführt wird oder nicht. Wenn ja, wird die service () -Methode aufgerufen und die Antwort an den Browser übermittelt.

Wenn das Servlet nicht läuft, folgen Sie den folgenden Schritten für den Web-Container.

1. Classloader laden die Servlet-Klasse  

2. Instantiiert das Servlet

3. Initialisiert das Servlet

4. die service () - Methode aufrufen

nach dem Servieren des Request-Web-Containers auf eine bestimmte Zeit warten, in dieser Zeit wird die Anfrage nur die service () -Methode aufgerufen, ansonsten die destroy () -Methode. 

3
Navnath Adsul

Java Servlets sind serverseitige Java-Programmmodule, die Kundenanforderungen bearbeiten und beantworten sowie die Servlet-Schnittstelle aktualisieren. Es hilft bei der Verbesserung der Webserver-Nützlichkeit mit geringem Aufwand, Unterhalt und Support. 

Ein Servlet dient als Vermittler zwischen dem Kunden und dem Server. Da Servlet-Module weiterhin auf dem Server ausgeführt werden, können sie auf Anforderungen des Kunden reagieren und darauf reagieren. Anforderungs- und Reaktionsobjekte des Servlets bieten eine hilfreiche Methode zum Umgang mit HTTP-Anfragen und zum Senden von Inhaltsinformationen an den Kunden. 

Da ein Servlet mit dem Java-Dialekt koordiniert ist, verfügt es zusätzlich über alle Java-Highlights, beispielsweise hohe Beweglichkeit, Bühnenautonomie, Sicherheit und Verfügbarkeit der Java-Datenbank.

Was ist ein Servlet?

  • Ein Servlet ist einfach eine Klasse, die auf eine bestimmte Art von Netzwerkanforderung antwortet - meistens eine HTTP-Anforderung. 
  • Grundsätzlich werden Servlets normalerweise für die Implementierung von Webanwendungen verwendet. Es gibt jedoch auch verschiedene Frameworks, die auf Servlets (z. B. Struts) basieren und eine Abstraktion auf höherer Ebene als die Ebenen "Hier ist eine HTTP-Anforderung, in diese HTTP-Antwort schreiben" geben zu Verfügung stellen.
  • Servlets werden in einem Servlet-Container ausgeführt, der für die Netzwerkseite zuständig ist (z. B. Analyse einer HTTP-Anforderung, Verbindungsverarbeitung usw.). Einer der bekanntesten Open-Source-Servlet-Container ist Tomcat.

  • In einem Request/Response-Paradigma kann ein Webserver dem Client nur statische Seiten bereitstellen

  • Um dynamische Seiten zu liefern, benötigen wir Servlets.
  • Servlet ist nichts anderes als ein Java-Programm
  • Dieses Java-Programm hat keine Hauptmethode. Es gibt nur einige Callback-Methoden.
  • Wie kommuniziert der Webserver mit dem Servlet? Über Container oder Servlet Engine.
  • Servlet lebt und stirbt in einem Webcontainer.
  • Der Web-Container ist für das Aufrufen von Methoden in Servlets verantwortlich. Sie weiß, welche Callback-Methoden das Servlet hat.

Fluss der Anfrage

  • Der Client sendet eine HTTP-Anforderung an den Webserver
  • Der Webserver leitet diese HTTP-Anforderung an den Webcontainer weiter.
  • Da Servlet HTTP, ein Java-Programm, nicht verstehen kann, versteht es nur Objekte. Web-Container konvertiert diese Anforderung in ein gültiges Anforderungsobjekt
  • Webcontainer spinnt für jede Anforderung einen Thread 
  • Die gesamte Geschäftslogik ist in den Rückrufmethoden doGet () oder doPost () in den Servlets enthalten
  • Servlet erstellt ein Java-Antwortobjekt und sendet es an den Container. Es konvertiert das erneut in eine HTTP-Antwort, um es an den Client zu senden

Woher weiß der Container, um welchen Servlet-Client es sich handelt?

  • Es gibt eine Datei namens web.xml
  • Dies ist die Masterdatei für einen Webcontainer
  • Sie haben Informationen über Servlet in dieser Datei- 

    • servlets
      • Servlet-Name
      • Servlet-Klasse
    • servlet-mappings - der Pfad wie/Login oder/Notifications wird hier in .__ zugeordnet.
      • Servlet-Name
      • uRL-Muster
    • und so weiter
  • Jedes Servlet in der Web-App sollte einen Eintrag in dieser Datei haben

  • Diese Suche geschieht also wie -url-pattern -> servlet-name -> servlet-class

Wie installiere ich Servlets? * Nun, die Servlet-Objekte werden von libraryjavax.servlet. * Geerbt. Tomcat und Spring können verwendet werden, um diese Objekte für den Anwendungsfall zu verwenden.

Verweisen Sie auf 1,5x- https://www.youtube.com/watch?v=tkFRGdUgCsE . Das hat eine großartige Erklärung.

2
Sankalp

Servlet ist eine Java-Klasse, um eine HTTP-Anforderung zu beantworten und eine HTTP-Antwort zu erzeugen. Wenn wir eine Seite mit HTML erstellen, wäre dies eine statische Seite. Um sie dynamischer zu machen, verwenden wir SERVLET {in einfachen Worten } Um das Servlet zu nutzen, wird es von JSP überwältigt. Es verwendet den Code und das HTML-Tag in sich selbst.

1
Roopam

Servlets sind Java-Klassen, die bestimmte Funktionen ausführen, wenn ein Website-Benutzer eine URL von einem Server anfordert. Diese Funktionen können Aufgaben wie das Speichern von Daten in einer Datenbank, das Ausführen von Logik und das Zurückgeben von Informationen (wie JSON-Daten) ausführen, die zum Laden einer Seite erforderlich sind.

Die meisten Java-Programme verwenden eine main()-Methode, die Code ausführt, wenn das Programm ausgeführt wird. Java-Servlets enthalten doGet()- und doPost()-Methoden, die genau wie die main()-Methode funktionieren. Diese Funktionen werden ausgeführt, wenn der Benutzer eine GET- oder POST-Anforderung an die diesem Servlet zugeordnete URL sendet. Auf diese Weise kann der Benutzer eine Seite für eine GET-Anforderung laden oder Daten aus einer POST-Anforderung speichern.

Wenn der Benutzer eine Anforderung GET oder POST sendet, liest der Server den @WebServlet oben in jeder Servlet-Klasse in Ihrem Verzeichnis, um zu entscheiden, welche Servlet-Klasse aufgerufen werden soll. Nehmen wir zum Beispiel an, Sie haben eine ChatBox-Klasse und oben steht diese:

@WebServlet("/chat")
public class ChatBox extends HttpServlet {

Wenn ein Benutzer den /chat URL anfordert, wird Ihre ChatBox Klasse ausgeführt.

0
kundus

Wie in diesem Artikel beschrieben, ist ein Servlet eine standardisierte Möglichkeit, einen Java-Server zu erweitern und auf seine Funktionen zuzugreifen.

Jedes Servlet kann als kleiner Server (daher der Name) angesehen werden, der Zugriff auf die in Java-Code modellierte Anforderung und Antwort sowie andere Kontextdaten wie die Sitzung erhält.

Mit diesen in der Hand kann der Java-Code des Servlets mit den erforderlichen Elementen zum Rendern einer Antwort verbunden werden, einschließlich der Übergabe an eine JSP-Seite zum Generieren einer HTML-Ansicht.

0
mtyson