Servlet-Lebenszyklus in Java: Methoden, Architektur, Vergleich und Einrichtung

Veröffentlicht: 2021-03-03

Inhaltsverzeichnis

Einführung

Servlets ergeben eine Methode, die nicht nur komponentenbasiert und plattformunabhängig ist, sondern auch sehr hilfreich für die Erstellung webbasierter Anwendungen ist. Servlets haben Zugriff auf die Java-APIs und die JDBC-API, um auf Datenbanken zuzugreifen. Bei Java Servlets gibt es zwar keine Einschränkungen hinsichtlich der Leistungsfähigkeit des CGI-Programms (Common Gateway Interface), aber dennoch einige Nachteile.

Was ist Servlet?

Servlet ist eine Technologie, die für die Erstellung dynamischer Webseiten sehr vorteilhaft ist. Es fungiert als Zwischenschicht zwischen dem Webbrowser und HTTP-Clients oder -Servern. Mit Hilfe von Servlets sammeln wir zunächst die Eingaben der Benutzer und erstellen dann dynamisch Webseiten. Servlet erweitert die Fähigkeiten von Servern und Hostanwendungen. Servlets erweitern die Fähigkeiten der Server und reagieren auch auf jede Art von Anfragen für Benutzer.

Quelle

CGI vs. Servlets

Vor Servlets wurde CGI weit verbreitet verwendet. CGI ist eine Möglichkeit, die vom Benutzer empfangene Anfrage an ein Anwendungsprogramm weiterzuleiten. Obwohl CGI eine Möglichkeit für einen Webserver ist, erhält es auch die Antwort vom Browser (Client). Wenn der Benutzer eine Webseite an den Browser anfordert, sendet der Server sie an ihn zurück.

Wenn ein Client ein Formular auf einer Webseite ausfüllen und versuchen möchte, es erneut zu senden, wird es vom Anwendungsprogramm verarbeitet. Der Server leitet die Informationen an ein kleines Webanwendungsprogramm weiter. Dieses Programm verarbeitet die Daten zunächst und sendet sie dann per Bestätigungsnachricht zurück.

Servlet-Lebenszyklusmethoden in Kürze

Es gibt hauptsächlich drei Lebenszyklusmethoden eines Servlets, die wir wie folgt beschreiben können:

  1. drin()
  2. Bedienung()
  3. zerstören()

Quelle

Servlet-Architektur

  • Erstens liest es die von Clients gesendeten Daten. Dann fügt es ein HTML-Formular in eine Webseite ein und sendet dann die von Clients gesendeten Anfragen.
  • Danach verarbeitet das Servlet die Daten und stellt eine Verbindung zu einem Datenbankverwaltungssystem her, wobei RMI durch Aufrufen von Webdiensten ausgeführt wird.
  • Nach der Bearbeitung können die Dokumente im Text- und gif-Format versendet werden.
  • Schließlich sendet es das HTTP an den Client.

Quelle

Nun werden wir diese Methoden im Detail besprechen

1. init()

Die Methode init() wird nur einmal aufgerufen, nachdem die Servlet-Instanz erstellt wurde. Zuerst initialisiert es das Servlet. Servlet.init() zeigt an, dass die Servlet-Instanz erfolgreich erstellt wurde.

Die Syntax der Methode init() wird wie folgt angegeben:

public void init(ServletConfig config) wirft ServletException {

//Initialisierungscode

}

2. dienst()

Immer wenn das Servlet die Anfrage erhält, ruft der Webcontainer die Methode service() auf.

  • Um die angeforderten Daten zu sammeln b
  • Auf dem Client wird das Dienstanforderungsobjekt verwendet.
  • Um den Ausgabeinhalt zu generieren, wird das ServletResponse- Objekt verwendet.

Die Signatur der Methode service() wird wie folgt angegeben:

öffentlicher Void-Dienst (ServletRequest-Anfrage, ServletREsponse-Antwort)

wirft ServletEXception , IOException {

//Handhabungscode anfordern

}

Die Methode service() verwendet doGet, doPost, doPut, doDelete und viele andere Methoden.

3. zerstören()

Der Benutzer ruft die Methode destrue() mindestens einmal im Lebenszyklus eines Servlets auf . Es wird verwendet, um die Datenbankverbindung zu beenden, um den zugewiesenen Speicher und die Ressourcen freizugeben. Es hilft auch bei Reinigungszwecken, und die Müllabfuhr ist damit verbunden.

Die Signatur der Destroy()-Methode ist

öffentliche Leere zerstören () {

// Finalisierungscode

}

Lesen Sie auch: Servlet vs. JSP

Umgebung Einrichtung eines Servlets

Um eine Servlet-Anwendung zu erstellen, müssen wir zunächst einige Schritte ausführen, z. B. die Installation von Tomcat Server, die unten beschrieben wird.

1. Erstellen einer Verzeichnisstruktur

Quelle

Zuerst müssen wir die obige Verzeichnisstruktur in einem Verzeichnis namens Apache – Tomcat\webapps-Verzeichnis erstellen. Wir müssen alle HTML-Dateien, statischen Dateien und Bilder unter der Webanwendung aufbewahren, um einen Ordner zu erstellen. Die Servlets müssen im Klassenordner aufbewahrt werden. Schließlich sollte sich die Datei web.xml im Ordner WEB-INF befinden.

2. Erstellen eines Servlets

Es gibt drei verschiedene Möglichkeiten, wie wir ein Servlet erstellen können.

  1. Durch die Implementierung der Servlet-Schnittstelle.
  2. Durch Erweitern der GenericServlet-Klasse.
  3. Es ist notwendig, die HTTP-Servlet-Klasse zu erweitern.

Ein Servlet kann hauptsächlich gebildet werden, wenn wir die abstrakte Klasse httpServlet erweitern können.

3. Kompilieren des Servlets

Zum Kompilieren des Servlets wird eine JAR-Datei benötigt –

  1. Durch Festlegen des Klassenpfads.
  2. Durch Einfügen der JAR-Datei in den Ordner JRE/lib/ext.

4. Erstellen Sie einen Bereitstellungsdeskriptor

DD kann als XML-Datei definiert werden, die von webbasierten Servern verwendet wird, damit

Sie können problemlos Servlets ausführen. DD wird für mehrere wichtige Zwecke verwendet.

  1. Durch Zuordnen der URL zur Servlet-Klasse.
  2. Durch Initialisieren von Parametern.
  3. Durch Definieren der Fehlerseite.
  4. Nach Sicherheitsrollen.
  5. Durch das Deklarieren von Tag-Bibliotheken.

5. Starten Sie den Server

Um den Apache Tomcat-Server zu starten, müssen wir auf die Datei startup.bat im Verzeichnis apache-tomcat/bin doppelklicken, und sie beginnt zu arbeiten.

6. Tomcat Server zum ersten Mal starten

Um Tomcat Server zum ersten Mal zu starten, müssen wir JAVA_HOME in der Umgebungsvariable festlegen. Die folgenden Schritte werden unten erwähnt. Klicken Sie mit der rechten Maustaste auf Arbeitsplatz , und wir müssen zu Eigenschaften gehen .

Quelle

  1. Als nächstes gehen wir zur Registerkarte „ Erweitert “ und müssen auf die Schaltfläche „ Umgebungsvariablen “ klicken .

Quelle

  1. Daher klicken wir auf die Schaltfläche Neu und geben JAVA_HOME in das Textfeld Variablenname und den Pfad von JDK in das Textfeld Variablenwert ein. Dann müssen wir es speichern, indem wir auf OK klicken.

Quelle

7. Ausführen der Servlet-Anwendung

Wenn wir die Servlet-Schaltfläche ausführen, sieht es so aus –

Nach dem Öffnen des Browsers müssen wir http:localhost:8080/First/hello eingeben

Checkout: Java-Entwicklergehalt in Indien

Servlet-Anforderungsschnittstelle

ServletRequest zielt darauf ab, dem Client authentische Informationen über ein Servlet zu liefern, das

enthält Inhaltstyp, Länge, Parameterwerte und vieles mehr.

Methoden

1. getAttribute(String)

Gibt den Wert von Attributen wie angefordert zurück, wenn Attribute nicht vorhanden sind

gibt dann NULL zurück.

2. getAttributeNames()

Es gibt die Namen der vorliegenden Attribute zurück, die von den Clients angefordert werden.

3. getCharacterEncoding()

Gibt einen Satz von Zeichen zurück.

4. getContentLength()

Gibt die angeforderte Größe der Datenentität zurück .

5. getContentType()

Zuerst fordert es die Identität des Objekts an. Wenn es nicht gefunden wird, gibt es einen NULL-Wert zurück.

6. getInputStream()

Gibt einen binären Datenstrom zurück, der vom Client empfangen wurde, und gibt dann die Zeichenfolgen zurück.

7. getParameter (String)

Gibt eine Zeichenfolge der Parameter zurück.

8. getParameterNames()

Es gibt die Parameternamen zurück.

9. getParameterValues(String)

Es gibt die Werte der Parameter zurück. Sie liegen immer in Form einer Zeichenfolge vor.

10. getProtocol()

Es gibt das Protokoll und die Version in der Form <Protokoll>/<Hauptversion>.<Nebenversion> zurück.

11. getReader()

Es gibt einen gepufferten Reader zurück, um den Text im Anforderungstext zu lesen.

12. getRealPath(String)

vermeidet den virtuellen Pfad und gibt den realen Pfad zurück.

13. getRemoteAddr()

Es gibt die IP-Adresse zurück.

14. getRemoteHost()

Es gibt den vollständig strukturierten Hostnamen des Agenten zurück.

15. getScheme()

Es gibt die in der Anfrage verwendete URL zurück.

16. getServerName()

Es gibt den Hostnamen des Servers zurück.

17. getServerPort()

Es gibt die Portnummer zurück.

18. setAttribute(String, Objekt)

Diese Methode sammelt ein Attribut für jede Art von Anfragen.

Servlet-Antwort

ServletResponse ruft ein Objekt auf und die Antwort verschiedener Benutzer wird aufgezeichnet. Für all diese Aktivitäten ist der Webcontainer zuständig. Der Schritt, dies zu erstellen, ist sehr wichtig. Der Schritt besteht darin, ein Objekt zu erstellen.

Lassen Sie uns nun im Folgenden ausführlich über ServletConfig und ServletContext sprechen.

ServletConfig

1. Der Webcontainer erstellt das Konfigurationsobjekt basierend auf den Initialisierungsparametern.

2. Eine ServletConfig pro Servlet muss vorhanden sein.

Methoden

1. Gleich (Objekt)

prüft, ob das aktuelle Objekt den gleichen Wert wie das angegebene Objekt hat.

2. GetHashCode()

Funktioniert als Standard-Hash-Funktion.

3. GetType()

Gibt den Typ der aktuellen Instanz zurück.

4. MemberwiseClone()

Wenn wir dieses Objekt aufrufen, kann eine flache Kopie erstellt werden. Es bezieht sich standardmäßig auf das aktuelle Objekt .

5. ToString()

Gibt einen String zurück, der das aktuelle Objekt darstellt.

ServletContext

Lassen Sie uns ServletContext unten besprechen:

  1. Es ist sehr wichtig, das Referenzobjekt jedem einzelnen Servlet der Webanwendung zugänglich zu machen.
  2. Das Referenzobjekt ist eigentlich die Laufzeitimplementierung davon.

Die zwei Arten von Servlets können wie folgt definiert werden:

1. Generische Servlets

Wir bezeichnen die generischen Servlets als unabhängig von Protokollen, und es ist auch erforderlich, sie durch Überschreiben aufzurufen. Wir können generische Servlets auf drei Arten aufrufen:

  • HTML-Datei

Wir können eine sehr unkomplizierte HTML-Datei erstellen, die wie WebContent/index.html aussehen kann.

  • Java-Klassendatei

Ein generisches Servlet kann durch Erweitern der GenericServlet-Klasse erstellt werden. Wenn wir eine einfache neue Klassendatei erstellen können, können wir sie in generisch umbenennen. Der Dateipfad sieht wie folgt aus:/ javaResouces/src/default package/generic.java.

  • XML-Datei

Wir finden diese Datei im Pfad WebContent/WEB-INF/web.xml. Wir können das Servlet einer bestimmten URL zuordnen.

2. HTTP-Servlet

Diese Art von Servlets ist nichts anderes als eine Erweiterung von Servlet-Klassen. Obwohl es HTTP-abhängig ist, legt es einige Regeln fest, die dem Webbrowser und den Servern bei der Kommunikation helfen, und das HTTP-Servlet kann auch die Methoden doGet() oder doPost() überschreiben. Außerdem kann es beide Methoden überschreiben.

Vorteile von Servlets

Sehen wir uns nun einige Vorteile von Servlets an –

  1. Leistung ist hervorragend.
  2. Servlets können innerhalb des Adressraums eines Servers ausgeführt werden. Als Ergebnis können wir sagen, dass es unnötig ist, einen separaten Adressraum zu erstellen, um die Client-Anfrage zu bearbeiten.
  3. Sie sind plattformunabhängig und hauptsächlich komponentenbasiert.
  4. Servlets sind gesichert, da der Sicherheitsmanager einige Einschränkungen festlegt, um die Ressourcen und Daten zu schützen.
  5. Während der Arbeit müssen sich Benutzer keine Gedanken über die Freigabe von Speicher als Garbage-Allocation-Technik machen.
  6. Servlets bieten volle Funktionalität, da alle Bibliotheken verfügbar sind. Es kann leicht mit Applets und anderen Mechanismen kommunizieren.

Quelle

Nachteile von Servlets

Die Einschränkungen von Servlets werden wie folgt diskutiert:

  1. Es kann jeweils nur ein Servlet in die JVM geladen werden. Wir können also sagen, dass es auf die Anzahl der Anfragen ankommt.
  2. Wenn es eine Anfrage gibt, kann es nur einen Thread geben. Dort sollte kein Prozess vorhanden sein.
  3. Das Entwerfen eines Servlets ist kostspielig und manchmal ziemlich problematisch.
  4. Wir benötigen andere Setups im Browser wie JRE (Java Runtime Environment) auf dem Server, um Servlets auszuführen.

Lesen Sie auch: Ideen und Themen für Java-Projekte

Lernen Sie Softwarekurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Fazit

In dieser modernen Ära der digitalen Welt sind Technologie und das Internet zur treibenden Kraft von allem geworden. Das Internet ist unruhig. Jede Sekunde ist es damit beschäftigt, große Datenmengen zu übertragen.

Aber aufgrund der Massenübertragung von Daten verlangsamt sich das Internet, da wir auch Geschwindigkeit brauchen. Die dynamischen Seiten werden also von Softwareentwicklern erstellt. Diese Seiten werden ständig geändert und aktualisiert. Um mehr über die Servlets in Java und die Entwicklung zu erfahren, schauen Sie sich das Executive PG-Programm von upGrad in Full-Stack-Softwareentwicklung an und starten Sie Ihre Reise.

Das Hauptmotiv dieses Artikels besteht darin, den Lesern ein grundlegendes Konzept von Servlets zu vermitteln, damit sie sich eine grundlegende Vorstellung von Servlets verschaffen können.

Landen Sie in Ihrem Traumjob

Bewerben Sie sich jetzt für das Executive PG-Programm in der Full-Stack-Entwicklung