logo

Einführung in Java-Servlets

Heute sind wir uns alle der Notwendigkeit bewusst, etwas zu schaffen dynamische Webseiten d. h. diejenigen, die den Inhalt der Website je nach Zeit ändern oder den Inhalt entsprechend der vom Kunden erhaltenen Anfrage generieren können. Wenn Sie gerne in Java programmieren, werden Sie froh sein zu erfahren, dass es mit Java auch eine Möglichkeit gibt, dynamische Webseiten zu generieren, und das ist auch der Fall Java-Servlet . Aber bevor wir mit unserem Thema fortfahren, wollen wir zunächst die Notwendigkeit serverseitiger Erweiterungen verstehen.

Was ist Java-Servlet?

Java-Servlets sind die Java-Programme, die auf dem Java-fähigen Webserver oder Anwendungsserver ausgeführt werden. Sie werden verwendet, um die vom Webserver erhaltene Anfrage zu bearbeiten, die Anfrage zu verarbeiten, die Antwort zu erstellen und dann eine Antwort an den Webserver zurückzusenden.



Eigenschaften des Java-Servlets

Die Eigenschaften von Servlets sind wie folgt:

  • Servlets funktionieren serverseitig.
  • Servlets sind in der Lage, komplexe Anfragen vom Webserver zu verarbeiten.

Java-Servlets-Architektur

Die Servlet-Architektur kann anhand des Bildes selbst wie folgt dargestellt werden:

Servlets_architecture



Ausführung von Java-Servlets

Grundsätzliche Ausführung von Servlets umfasst sechs grundlegende Schritte:

  1. Die Clients senden die Anfrage an den Webserver.
  2. Der Webserver empfängt die Anfrage.
  3. Der Webserver leitet die Anfrage an das entsprechende Servlet weiter.
  4. Das Servlet verarbeitet die Anfrage und generiert die Antwort in Form einer Ausgabe.
  5. Das Servlet sendet die Antwort zurück an den Webserver.
  6. Der Webserver sendet die Antwort an den Client zurück und der Client-Browser zeigt sie auf dem Bildschirm an.

Lassen Sie uns nun den exzentrischen Punkt besprechen, warum wir serverseitige Erweiterungen benötigen.

Bedarf an serverseitigen Erweiterungen

Der Serverseitige Erweiterungen sind nichts anderes als die Technologien, die zur Erstellung dynamischer Webseiten verwendet werden. Um die Möglichkeit dynamischer Webseiten bereitzustellen, benötigen Webseiten tatsächlich einen Container oder Webserver. Um dieser Anforderung gerecht zu werden, bieten unabhängige Webserver-Anbieter einige proprietäre Lösungen in Form von an APIs ( Programmierschnittstelle).
Diese APIs Erlauben Sie uns, Programme zu erstellen, die mit einem Webserver ausgeführt werden können. In diesem Fall, Java-Servlet ist auch eine der Komponenten-APIs von Java Platform Enterprise Edition (heute bekannt als „Jakarta EE“) das Standards für die Erstellung dynamischer Webanwendungen in Java festlegt.



Bevor Sie etwas lernen, ist es wichtig, die Notwendigkeit dafür zu kennen. Es ist nicht so, dass dies die einzige verfügbare Technologie zum Erstellen dynamischer Webseiten ist. Die Servlet-Technologie ähnelt anderen Webserver-Erweiterungen wie z Gemeinsame Gateway-Schnittstelle ( CGI)-Skripte und Hypertext Preprocessor (PHP). Allerdings sind Java-Servlets akzeptabler, da sie die Einschränkungen von beseitigen CGI wie geringe Leistung und geringe Skalierbarkeit.

Was ist CGI (Common Gateway Interface)?

CGI ist eigentlich eine externe Anwendung, die mit einer der folgenden Programmiersprachen geschrieben wurde C oder C++ und dieser ist für die Bearbeitung von Kundenanfragen und die Generierung dynamischer Inhalte verantwortlich.

Wenn in einer CGI-Anwendung ein Client eine Anfrage zum Zugriff auf dynamische Webseiten stellt, führt der Webserver die folgenden Vorgänge aus:

  • Es findet zunächst die angeforderte Webseite d.h die erforderliche CGI-Anwendung über die URL.
  • Anschließend wird ein neuer Prozess zur Bearbeitung der Kundenanfrage erstellt.
  • Ruft die CGI-Anwendung innerhalb des Prozesses auf und übergibt die Anforderungsinformationen an die Anwendung.
  • Sammelt die Antwort von der CGI-Anwendung.
  • Zerstört den Prozess, bereitet die HTTP-Antwort vor und sendet sie an den Client.

CGI

Also rein CGI Der Server muss den Prozess für jede Anfrage erstellen und zerstören. Es ist leicht zu verstehen, dass dieser Ansatz für die Verwaltung weniger Clients geeignet ist, aber mit zunehmender Anzahl von Clients steigt die Arbeitslast auf dem Server und damit auch die Zeit, die für die Bearbeitung von Anfragen benötigt wird.

Unterschied zwischen Java-Servlets und CGI

Servlet CGI (Common Gateway Interface)
Servlets sind portabel und effizient. CGI ist nicht portierbar.
In Servlets ist der Datenaustausch möglich. In CGI ist das Teilen von Daten nicht möglich.
Servlets können direkt mit dem Webserver kommunizieren. CGI kann nicht direkt mit dem Webserver kommunizieren.
Servlets sind kostengünstiger als CGI. CGI ist teurer als Servlets.
Servlets können die Cookies verarbeiten. CGI kann die Cookies nicht verarbeiten.

Servlets-APIs

Servlets werden aus zwei Paketen erstellt:

  • javax.servlet (Basis)
  • javax.servlet.http(Advance)

In diesen Paketen sind verschiedene Klassen und Schnittstellen enthalten:

Komponente Typ Paket
Servlet Schnittstelle javax.servlet.*
ServletRequest Schnittstelle javax.servlet.*
ServletResponse Schnittstelle javax.servlet.*
GenericServlet Klasse javax.servlet.*
HttpServlet Klasse javax.servlet.http.*
HttpServletRequest Schnittstelle javax.servlet.http.*
HttpServletResponse Schnittstelle javax.servlet.http.*
Filter Schnittstelle javax.servlet.*
ServletConfig Schnittstelle javax.servlet.*

Vorteile eines Java-Servlets

  • Servlet ist Schneller als CGI, da nicht für jede neue Anfrage ein neuer Prozess erstellt werden muss.
  • Servlets, wie sie in Java geschrieben sind, sind plattformunabhängig.
  • Entfernt den Aufwand für die Erstellung eines neuer Prozess für jede Anfrage, da Servlet nicht in einem separaten Prozess ausgeführt wird. Es gibt nur eine einzige Instanz, die alle Anfragen gleichzeitig bearbeitet. Dies spart außerdem Speicher und ermöglicht einem Servlet die einfache Verwaltung des Client-Status.
  • Da es sich um eine serverseitige Komponente handelt, erbt Servlet diese Sicherheit vom Webserver bereitgestellt.
  • Der API Das für Java entwickelte Servlet übernimmt automatisch die Vorteile der Java-Plattformen wie Plattformunabhängigkeit und Portabilität. Darüber hinaus kann es natürlich die breite Palette von APIs nutzen, die auf Java-Plattformen erstellt wurden, z JDBC um auf die Datenbank zuzugreifen.
  • Viele Webserver, die für den persönlichen Gebrauch oder für Websites mit geringem Datenverkehr geeignet sind, werden kostenlos oder zu extrem günstigen Preisen angeboten günstige Kosten z.B. Java-Servlet. Allerdings sind die meisten kommerziellen Webserver recht teuer, mit Ausnahme von Apache, der kostenlos ist.

Der Servlet-Container

Servlet-Container , auch bekannt als Servlet-Engine, ist ein integrierter Satz von Objekten, die eine Laufzeitumgebung für Java-Servlet-Komponenten bereitstellen. In einfachen Worten handelt es sich um ein System, das Java-Servlet-Komponenten auf dem Webserver verwaltet, um die Anforderungen des Web-Clients zu verarbeiten.

Vom Servlet-Container bereitgestellte Dienste:

  • Netzwerkdienste: Lädt eine Servlet-Klasse. Das Laden kann von einem lokalen Dateisystem, einem Remote-Dateisystem oder anderen Netzwerkdiensten erfolgen. Der Servlet-Container stellt die Netzwerkdienste bereit, über die die Anfrage und die Antwort gesendet werden.
  • MIME-basierte Nachrichten dekodieren und kodieren: Bietet den Dienst zum Dekodieren und Kodieren von MIME-basierten Nachrichten.
  • Servlet-Container verwalten: Verwaltet den Lebenszyklus eines Servlets.
  • Resourcenmanagement Verwaltet die statischen und dynamischen Ressourcen wie HTML-Dateien, Servlets und JSP-Seiten.
  • Sicherheitsdienst: Verwaltet die Autorisierung und Authentifizierung des Ressourcenzugriffs.
  • Sitzungsverwaltung: Hält eine Sitzung durch Anhängen von a aufrecht Session-ID zum URL-Pfad.

Abschluss

Java-Servlets sind entscheidende Komponenten für die Definition der Geschäftslogik und die Bearbeitung komplexer Webanfragen. Diese Komponenten fördern die dynamische Entwicklung einer Website und haben großes Potenzial, die Anwendungsdynamik zu verändern. Hier sind einige der wichtigsten Funktionen, die wir in diesem Artikel lernen:

String-Funktionen Java
  • Java-Servlets unterstützen die Entwicklung serverseitiger Anwendungsentwicklung und bieten eine Möglichkeit, mit dynamischen Inhalten umzugehen, um robuste und interaktive Websites zu erstellen.
  • Sobald die Anfrage den Webserver erreicht, wird eine Servlet-Instanz mit initialisiert Hitze() Methode, und die HTTP-Anfrage kann je nach Typ von den Methoden doGet() oder doPost() verarbeitet werden.
  • Servlets machen unsere Webanwendung reaktionsschneller und effizienter, da nicht jedes Mal, wenn eine Anfrage eingeht, ein Prozess erstellt und zerstört wird.

FAQs zum Java-Servlet

Q1. Was ist der Lebenszyklus von Java Servlet?

Java Servlet verfügt über einen vordefinierten Lebenszyklus, der vom Initialisierer (Speicherzuweisung) bis zur Zerstörung des Objekts (Speicherfreigabe) beginnt. Es erfolgt in folgenden Schritten:

  1. init() – wird aufgerufen, sobald die Anfrage vom Webserver empfangen wird und eine neue Servlet-Instanz initialisiert wird.
  2. service() – um Client-Anfragen zu bearbeiten und die Anfrage an ein geeignetes doGet() oder doPost() weiterzuleiten
  3. destroy() – wird aufgerufen, wenn die Anfrage bearbeitet wird, die Antwort wird an den Client zurückgesendet und schließlich wird der dem Servlet zugewiesene Speicher freigegeben.

Q2. Wie konfiguriere ich ein Java-Servlet?

Die Konfiguration des Java-Servlets wird in a definiert Bereitstellungsdeskriptor Datei - web.xml. Allerdings handelt es sich heute um ein veraltetes Verfahren, da die meisten Servlet-basierten Anwendungen heutzutage eine annotationsbasierte Konfiguration verwenden, um ein Java-Servlet mithilfe der @WebServlet-Annotation zu konfigurieren.

Beispiel: @WebServlet(name = MyServlet, urlPatterns = /myServlet)

Q3. Was ist ein Servlet-Filter?

Ein Servlet-Filter ist eine zusätzliche Komponente zur Durchführung von Vor- und Nachbearbeitungsarbeiten an Webanfragen wie Protokollierung, Überwachung, Debugging und Fehlerbehebung.