Der Webserver benötigt eine JSP-Engine, bei der es sich um einen Container zur Verarbeitung von JSP-Seiten handelt. Der Container ist für das Abfangen von Anfragen für JSP-Seiten verantwortlich. Dieses Tutorial verwendet Apache mit einem integrierten JSP-Container zur Unterstützung der JSP-Entwicklung.
Der JSP-Container arbeitet mit dem Webserver zusammen, um die erforderliche Betriebsumgebung und andere Dienste für den normalen Betrieb von JSP bereitzustellen, und kann spezielle Elemente, die für JSP-Webseiten einzigartig sind, korrekt identifizieren.
Die folgende Abbildung zeigt den Speicherort des JSP-Containers und der JSP-Dateien in der Webanwendung.
Die folgenden Schritte zeigen, wie ein Webserver JSP zum Erstellen einer Webseite verwendet:
Wie bei jeder anderen normalen Webseite sendet Ihr Browser eine HTTP-Anfrage an den Server.
Der Webserver erkennt, dass es sich um eine Anfrage für eine JSP-Webseite handelt und leitet die Anfrage an die JSP-Engine weiter. Dies erfolgt über eine URL oder eine .jsp-Datei.
Die JSP-Engine lädt JSP-Dateien von der Festplatte und konvertiert sie in Servlets. Diese Transformation wandelt einfach den gesamten Vorlagentext in println()-Anweisungen um und wandelt alle JSP-Elemente in Java-Code um.
Die JSP-Engine kompiliert das Servlet in eine ausführbare Klasse und übergibt die ursprüngliche Anfrage an die Servlet-Engine.
Eine Komponente des Webservers ruft die Servlet-Engine auf und lädt dann die Servlet-Klasse und führt sie aus. Während der Ausführung generiert das Servlet eine Ausgabe im HTML-Format, bettet sie in die HTTP-Antwort ein und sendet sie an den Webserver.
Der Webserver gibt die HTTP-Antwort in Form einer statischen HTML-Webseite an Ihren Browser zurück.
Letztlich verarbeiten Webbrowser die dynamisch generierten HTML-Seiten in der HTTP-Antwort so, als wären sie statische Webseiten.
Die oben genannten Schritte können durch die folgende Abbildung dargestellt werden:
Unter normalen Umständen prüft die JSP-Engine, ob das der JSP-Datei entsprechende Servlet bereits vorhanden ist und ob das Änderungsdatum der JSP-Datei vor dem des Servlets liegt. Wenn das Änderungsdatum der JSP-Datei vor dem des entsprechenden Servlets liegt, kann der Container sicher sein, dass die JSP-Datei nicht geändert wurde und das Servlet gültig ist. Dadurch wird der gesamte Prozess effizienter und schneller als bei anderen Skriptsprachen (wie PHP).
Im Allgemeinen sind JSP-Webseiten eine weitere Möglichkeit, Servlets zu schreiben, ohne ein Java-Programmierexperte zu werden. Mit Ausnahme der Interpretationsphase kann eine JSP-Webseite fast wie ein gewöhnliches Servlet behandelt werden.