Servlets Servlets. Erstellen von Java-Anwendungen mit Servlets Servlet-Grundlagen

Servlet - Dies ist Java-nporpaMMa, das die Klasse als Oberklasse verwendet HttpServiet. Ein Servlet wird verwendet, um die Fähigkeiten eines vorhandenen Servers, insbesondere eines Webservers, zu erweitern. Typischerweise läuft ein Servlet auf einem speziellen Server. Solche Server werden Java Application Server genannt. Ein Java-Anwendungsserver umfasst als Baustein einen Webserver (manchmal nicht einen, sondern mehrere) sowie Server, die mit Serverkomponenten, Hilfsdienstservern usw. arbeiten. Ein Servlet arbeitet in der Umgebung, die ihm der Server zur Verfügung stellt. Der Teil des Servers, der für die Verarbeitung von Servlets konzipiert ist, wird als Servlet-Container bezeichnet. Die Servlet-Spezifikation setzt das Vorhandensein von Standardmethoden in der Servlet-Klasse voraus, deren Ausführung in der einen oder anderen Phase des Servlet-Lebenszyklus erfolgt. Diese Methoden werden vom Servlet-Container aufgerufen. Eine Implementierung der Servlet-Spezifikation ist in den Standard-Java-Sprachpaketen enthalten.

Dieses Buch behandelt einen Java-Anwendungsserver namens Blazix. Blazix Server bietet einen vollständigen Satz an Funktionen für die Arbeit mit Servlets. Zusätzlich zum Erstellen einer Servlet-Klasse (oder -Klassen) sowie zum Konfigurieren des erstellten Servlet-Programms und seiner Installation auf dem Server müssen Sie die Konfigurationsdatei des Webservers ändern. Grundwerte werden in der Konfigurationsdatei wie folgt angegeben: servlet.name: myservlet

servlet.myservlet.className: mypackage.MyServletClass servlet.myservlet.url: /mysrvlet

Jedem Servlet muss ein Name gegeben werden(servlet.name), durch den es auf dem Server identifiziert wird. Dieser Name wird verwendet, um die Eigenschaften des Servlets festzulegen, insbesondere um den Namen der Klasse anzugeben, in der das Servlet-Programm gespeichert ist (nächste Zeile), sowie die Adresse, unter der auf dieses Servlet zugegriffen wird (dritte Zeile).

Der Client fragt den Webserver nach der Adresse, an der sich das Servlet befindet (die Adresse muss als Wert von servlet.myservlet.url in der Konfigurationsdatei des Webservers angegeben werden). Der Server übergibt die Anfrage und die Daten (falls vorhanden) an das Servlet, empfängt die Antwort vom Servlet und leitet sie an den Client weiter.

Dies könnte das Ende der Erklärung dessen sein, was ein Servlet ist. Es gibt jedoch viele interessante und nützliche Details, auf die Sie achten und die Sie genauer studieren sollten.

Es ist besonders wichtig zu beachten, dass der Servlet-Klassenpfad in einer Variablen angegeben werden muss ciasspath oder es kann im Verzeichnis C:\Blazix\classes oder in dem Verzeichnis abgelegt werden, das in der Webserver-Konfigurationsdatei als server.ciassDir angegeben ist. Nachdem die Konfigurationsdatei so geändert wurde, dass sie Informationen über das neue Servlet enthält, muss der Server gestoppt und erneut gestartet werden. Das Servlet kann auch mithilfe des Verwaltungsdienstprogramms auf einem laufenden Server platziert werden. Dazu muss das Servlet jedoch in eine WAR-Datei für ein Webarchiv gepackt werden. Wenn die Servlet-Klassendatei geändert wurde, ist es nicht erforderlich, den Server zu stoppen und erneut zu starten. Standardmäßig ist der Server so konfiguriert, dass der Aufruf eines Servlets unter http://localhost:81/_reload dazu führt, dass alle Klassen neu geladen werden und die geänderte Servlet-Klasse für Client-Anfragen verfügbar ist (Abbildung 4.1). Besuchen Sie diese Seite, nachdem die Servlet-Klassendatei geändert wurde. Ein Stoppen des Servers ist einfach nicht notwendig.

Wenn der Leser Erfahrung mit Servlets hat, wird er die Einfachheit des Blazix-Servers im Vergleich zu anderen Java-Servern wie Tomcat zu schätzen wissen.

Um gleich loszulegen, schauen wir uns ein einfaches Beispiel an, ein Servlet etwas-Servlet (Listing 4.1).

Auflistung 4.1. Servlet SomeServlet.java I

java.io.* importieren; import javax.servlet.*; import javax.servlet.http.*;

öffentliche Klasse SomeServlet erweitert HttpServlet ( public void doGet(HttpServletRequest request,

HttpServletResponse (Antwort) löst ServletException, IOException ( Printwriter out = Response.getWriter(); out.println("Hello World");

Schreiben Sie in die Konfigurationsdatei des Webservers Folgendes:

servlet.name: zuerst

servlet.first.className: SomeServlet

servlet.first.url: /dofirst

Dann sieht der Zugriff auf das Servlet über den Browser so aus http://localhost:81 /dofirst (Abbildung 4.2).

Java-Servlets bieten eine plattformunabhängige Methode zum Erstellen von Webanwendungen (dies ist nicht unumstritten, wir werden jedoch nicht weiter auf dieses Thema eingehen, da wir dann entscheiden müssen, was wir unter einer Webanwendung verstehen, die nicht in der Liste enthalten ist). der behandelten Themen) und viele Anwendungen. Sie sind schnell in Betrieb und frei von den Einschränkungen, die CGI-Anwendungen haben. Ein Servlet wird von einem Webserver gesteuert und benötigt im Gegensatz zu einem Applet keine grafische Benutzeroberfläche. Das Servlet interagiert mit dem Server, indem es Anfragen und Antworten mit ihm austauscht. Das Client-Programm stellt Anfragen an den Server. Die Anfrage wird vom Server verarbeitet, an das Servlet weitergeleitet und das Servlet sendet eine Antwort über den Server an den Client. Heutzutage erfreuen sich Servlets großer Beliebtheit bei der Erstellung interaktiver Webanwendungen. Es gibt viele Webserver, die Servlets verarbeiten können, darunter Tomcat und iPlanet Web Server (ehemals Netscape).

Enterprise Server), Blazix. J Builder Enterprise nutzt den mitgelieferten Borland Enterprise Server (BES) und unterstützt auch Webserver Logik, WebSphere und iPlanet. J Builder Enterprise Server enthält einen Standard-Tomcat-Server.

Reis. 4.2. Aufruf eines Servlets

Ein wichtiger Vorteil von Servlets ist ihre Geschwindigkeit. Im Gegensatz zu CGI-Anwendungen werden Servlets nur einmal in den Speicher geladen und dann direkt aus dem Speicher ausgeführt. Servlets sind im Wesentlichen Multithread-Anwendungen. Darüber hinaus sind sie plattformunabhängig, da sie in Java geschrieben sind.

JSP-Technologie, die gewidmet ist Kapitel 3 ist eine Erweiterung der Servlet-Technologie auf JSP Besondere Aufmerksamkeit Der Schwerpunkt liegt auf der Arbeit mit HTML- und XML-Dokumenten. JSP-Fragmente finden ihre häufigste Verwendung als Teil von HTML- und XML-Code. Wie trifft man eine Auswahl und entscheidet, ob man Servlets oder Serverseiten verwendet? Servlets eignen sich eher zur Lösung von Programmierproblemen auf niedriger Ebene und weniger zur Lösung von Problemen bei der Erstellung von Anwendungspräsentationslogik. Bei JSP-Serverseiten geht es dagegen hauptsächlich darum, wie das Ergebnis dem Benutzer auf die bequemste Art und Weise präsentiert werden kann. Serverseitige Seiten werden im HTML-Dokumenterstellungsstil eingebettet in HTML-Code erstellt. Die JSP-Technologie bietet viel umfangreichere Funktionen als einfaches HTML. JSP-Seiten können die Möglichkeit bieten, Anwendungslogik mithilfe einfacher Java-Komponenten sowie EJB-Serverkomponenten zu implementieren, indem benutzerdefinierte Verknüpfungsbibliotheken erstellt werden. Java-Serverseiten selbst können modulare, wiederverwendbare Präsentationslogikkomponenten sein, die in Verbindung mit verschiedenen Vorlagen und Filtern verwendet werden können. JSP-Seiten werden in Servlets konvertiert, sodass Sie theoretisch ausschließlich Servlets verwenden können. Die JSP-Technologie wurde jedoch entwickelt, um den Prozess der Erstellung von Webdokumenten zu vereinfachen, indem die Anwendungspräsentationslogik vom Dokumentinhalt getrennt wird. In den meisten Fällen besteht die an den Kunden gesendete Antwort sowohl aus Dokumentpräsentationsvorlagen als auch aus Daten, die durch das Ausfüllen der Vorlage automatisch generiert werden. In solchen Situationen erweist sich die Arbeit mit JSP als viel einfacher als mit Servlets.

Eines der besten Dinge an Java ist seine Vielseitigkeit. Natürlich ist die Erstellung traditioneller Desktops und sogar möglich mobile Anwendungen- es ist toll. Aber was ist, wenn Sie ausgetretene Pfade verlassen und das Gebiet der Webanwendungsentwicklung in Java betreten möchten? Es gibt eines für Sie gute Nachrichten: Die Sprache verfügt über eine vollwertige Servlet-API, mit der Sie ohne großen Aufwand zuverlässige Webanwendungen erstellen können.

Erstellen von Java-Anwendungen mit Servlets

Wir haben also bereits die Anwendungskonfigurationsdateien erstellt. In seinem aktuellen Zustand tut es jedoch buchstäblich nichts. Wir möchten, dass sich Kunden über ein HTML-Formular registrieren können. Als Nächstes müssen wir daher JSP-Dateien erstellen, die das obige Formular und die Kundendaten anzeigen, sobald die Registrierung erfolgreich abgeschlossen wurde. Das werden wir jetzt tun.

Wir arbeiten am Erscheinungsbild

Das Erscheinungsbild der Anwendung wird durch zwei JSP-Dateien definiert – im MVC-Kontext werden diese Ansichten genannt. Der erste ist für die Anzeige des Anmeldeformulars und verantwortlich mögliche Fehler, aufgerufen nach Überprüfung der eingegebenen Daten. Die zweite Seite wird eine reguläre Willkommensseite sein, auf der die vom Kunden eingegebenen Daten angezeigt werden, sobald der Registrierungsprozess erfolgreich abgeschlossen wurde.

Hier ist die erste JSP-Datei:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> Anmeldung

Anmeldung

$(Verstoß).