JavaRush /Java-Blog /Random-DE /Was ist JSP? Lassen Sie uns die Möglichkeiten in der Prax...
Анзор Кармов
Level 31
Санкт-Петербург

Was ist JSP? Lassen Sie uns die Möglichkeiten in der Praxis erkunden

Veröffentlicht in der Gruppe Random-DE
JSP oder Java Server Pages ist eine Java-Technologie, mit der Sie dynamische Webseiten für Java-Anwendungen erstellen können. In diesem Artikel werden wir ausführlicher darüber sprechen, was JSP ist, einige der Fähigkeiten dieser Technologie diskutieren, uns die Struktur von JSP-Seiten ansehen und auch versuchen, einen praktischen Blick darauf zu werfen, was diese Java Server Pages sind. Was ist JSP?  Die Möglichkeiten in der Praxis verstehen – 1Aber lassen Sie uns zunächst über die Vorteile und die Bedeutung von JSP sprechen. JSP ermöglicht dem Entwickler:
  • Daten von einer Webseite in Java-Code empfangen;
  • Daten aus Java-Code an eine Webseite senden;
  • Schreiben Sie Java-Code direkt in HTML (Sie sollten dies jedoch nicht missbrauchen).
Der Bedarf an JSP-Kenntnissen kann aus mehreren Gründen als recht hoch eingeschätzt werden:
  • JSP ist eine der wichtigsten Java-Webtechnologien;
  • JSP wird in den meisten Unternehmen und Projekten häufig verwendet;
  • JSP lässt sich nahtlos in Java-Servlets in einem Servlet-Container integrieren.

JSP-Definition

Hier ist eine Definition aus Wikipedia: JSP (JavaServer Pages) ist eine Technologie, die es Webentwicklern ermöglicht, Inhalte zu erstellen, die sowohl statische als auch dynamische Komponenten enthalten. Eine JSP-Seite enthält zwei Arten von Text: statische Quelldaten, die in einem der Textformate HTML, SVG, WML oder XML vorliegen können, und JSP-Elemente, die dynamische Inhalte erstellen. Darüber hinaus können JSP-Tag-Bibliotheken sowie Expression Language (EL) verwendet werden, um Java-Code in den statischen Inhalt von JSP-Seiten einzubetten. Der JSP-Seitencode wird mit dem Jasper JSP-Seitencompiler in Servlet-Java-Code übersetzt und dann in Java Virtual Machine (JVM)-Bytecode kompiliert. Servlet-Container, die JSP-Seiten ausführen können, sind in der plattformunabhängigen Java-Sprache geschrieben. Die JSP-Technologie ist eine plattformunabhängige, portable und leicht erweiterbare Technologie zur Entwicklung von Webanwendungen.

JSP-Seitenstruktur

Im Allgemeinen bezieht sich JSP auf dynamische Webseiten, bei denen der dynamische Teil mit Java und der statische Teil mit Auszeichnungssprachen, meist HTML, generiert wird. Eine solche Seite ist ein Textdokument mit der Erweiterung .jsp, geschrieben in einer der Auszeichnungssprachen (wie HTML, SVG, WML und XML), durchsetzt mit JSP-Elementen (oder JSP-Tags). Diese Tags enthalten Aufrufe an den Servercode (Daten) und führen auch einige Berechnungen durch. Diese Dateien werden auf dem Server verarbeitet, wodurch alle JSP-Tags in HTML-Tags umgewandelt werden und die Ausgabe eine normale HTML-Seite ist. Das folgende Diagramm zeigt ein Diagramm der Struktur einer JSP-Seite und ihrer Interaktion mit dem Server. Was ist JSP?  Die Möglichkeiten in der Praxis verstehen - 2Ein Beispiel für eine einfache JSP-Seite:
<html>
  <body>
    <p> ${2 + 2} равно 4 </p>
  </body>
</html>
In diesem Beispiel ist ein in einer speziellen Sprache, Expression Language (EL), geschriebener JSP-Ausdruck in den HTML-Code „eingebettet“ . Es stellt einen wichtigen Mechanismus für die Interaktion zwischen der Präsentationsschicht (Webseiten) und der Geschäftslogikschicht der Anwendung (Java-Code) bereit. Wie Sie dem Beispiel entnehmen können, ist der JSP-Ausdruck in geschweifte Klammern eingeschlossen, mit einem führenden Dollarzeichen – ${...}. Alles, was in den geschweiften Klammern steht, wird auf dem Server ausgewertet und das Ergebnis dieses Ausdrucks wird in HTML an der Stelle ausgegeben, an der der JSP-Ausdruck ursprünglich definiert wurde. Nach der Verarbeitung aller Tags sieht die Seite folgendermaßen aus:
<html>
  <body>
    <p> 4 равно 4 </p>
  </body>
</html>

Installieren und Ausführen des Servlet-Containers

Da der JSP-Code in Java-Servlet-Code übersetzt wird, müssen wir uns irgendwo eine Art Servlet-Container besorgen, damit wir darüber sprechen können, wie die JSP funktioniert. Andernfalls funktioniert JSP ohne Container nicht. Aber schauen wir uns zunächst die Definition eines Servlet-Containers an. Ein Servlet-Container ist ein Programm, das als Server fungiert und Systemunterstützung für Servlets bereitstellt und deren Lebenszyklus gemäß den in den Spezifikationen definierten Regeln sicherstellt. Es kann als vollwertiger unabhängiger Webserver arbeiten, als Seitenanbieter für einen anderen Webserver fungieren oder in einen Java EE-Anwendungsserver integriert werden. Einer der beliebtesten Servlet-Container ist Apache Tomcat. Was ist JSP?  Die Möglichkeiten in der Praxis verstehen - 3Es ist erwähnenswert, dass Tomcat kein vollwertiger Java EE-Anwendungsserver ist. Für die lebenswichtigen Anforderungen von Servlets und JSP-Seiten ist der Tomcat-Server jedoch mehr als ausreichend. Beginnen wir mit der Installation. Sie können Tomcat von der offiziellen Seite herunterladen . Für Windows-Betriebssysteme können Sie Tomcat wie folgt installieren:
  1. Laden Sie das 32-Bit/64-Bit-Windows-Dienstinstallationsprogramm herunter.

  2. Lassen Sie uns die Datei ausführen.

  3. Befolgen Sie als Nächstes die übliche Installationsprozedur:

    1. Vergessen Sie nicht, das Kontrollkästchen „Beispiele“ im entsprechenden Installationsfenster zu aktivieren:

      Was ist JSP?  Die Möglichkeiten in der Praxis verstehen - 4
    2. und geben Sie den Pfad zur vorinstallierten JRE an:

      Was ist JSP?  Die Möglichkeiten in der Praxis verstehen - 5
  4. Starten Sie nach der Installation Tomcat und öffnen Sie den Browser. Gehen Sie zu http://localhost:8080/ .

Wenn Sie die Tomcat-Startseite sehen, bedeutet dies, dass die Installation erfolgreich war und der Server läuft. Um Tomcat manuell zu starten und zu stoppen, können Sie eine von zwei ausführbaren Dateien im bin-Verzeichnis ausführen. Es befindet sich im Verzeichnis, in dem Tomcat installiert ist: Was ist JSP?  Die Möglichkeiten in der Praxis verstehen - 6

Demoanwendungen. Versteckte Objekte

Schauen wir uns einige JSP-Funktionen in Aktion an. Eine davon ist der Zugriff auf sogenannte versteckte Objekte ( Implicit Objects ). Dabei handelt es sich um Objekte, auf die über die Expression Language (EL) zugegriffen werden kann. Beispiele für solche Objekte sind HTTP-Header oder URL-Parameter. Lassen Sie uns verraten (oder unser Gedächtnis auffrischen), was URL-Parameter sind. Das folgende Beispiel zeigt eine URL mit Parametern. Parameter sind fett gedruckt: http://example.net/foo/bar ?param1=value1¶m2=value2&a=1&name=Tom Parameter beginnen immer mit einem Fragezeichen (?). Danach folgt der Name des Parameters, gefolgt vom Gleichheitszeichen – der Wert des Parameters wird ermittelt. Es können mehrere oder ein Parameter vorhanden sein. Wenn es mehr als eins gibt, wird jedes Name-Wert-Paar durch ein kaufmännisches Und-Zeichen (&) getrennt. Im obigen Beispiel wurden mehrere Parameter und deren Werte definiert:
Parametername Parameterwert
param1 Wert1
param2 Wert2
A 1
Name Tom
Schauen wir uns an, wie Sie auf versteckte Objekte in JSP zugreifen können, einschließlich URL-Parameter. Starten Sie dazu Tomcat und öffnen Sie den Browser auf der Seite http://localhost:8080/. Gehen Sie dann auf die Seite Beispiele: Was ist JSP?  Die Möglichkeiten in der Praxis verstehen - 7Folgen Sie dann dem Link JSP-Beispiele: Was ist JSP?  Die Möglichkeiten in der Praxis verstehen - 8Folgen Sie auf der Beispielseite dem Link Implicit Objects -> Execute: Was ist JSP?  Die Möglichkeiten in der Praxis verstehen - 9Darauf Auf dieser Seite können Sie ein Beispiel für die Verwendung versteckter Objekte sehen. Unten sehen Sie einen Screenshot der Seite mit detaillierten Erläuterungen: Was ist JSP?  Die Möglichkeiten in der Praxis verstehen - 10Versuchen Sie, den Wert des Parameters fooüber das entsprechende Feld auf der Seite zu ändern. Beachten Sie dann, dass sich der Wert dieses Parameters auch in der Adressleiste geändert hat. Die angezeigte Seite verfügt nicht über viele Funktionen, ist aber eine gute Referenz, auf die Sie in Zukunft zurückgreifen können, wenn Sie auf ein bestimmtes verstecktes Objekt zugreifen müssen. Diese Seite enthält eine Liste versteckter Objekte, auf die zugegriffen werden kann. Und unten in der Tabelle wird gezeigt, wie Sie auf ein bestimmtes Objekt zugreifen können.

JSP-Funktionen

Gehen wir nun zurück zur vorherigen Seite und werfen einen Blick auf den Quellcode der „Versteckte Objekte“-Seite: Was ist JSP?  Die Möglichkeiten in der Praxis verstehen - 11Hier ist er:
<%@page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<html>
  <head>
    <title>JSP 2.0 Expression Language - Implicit Objects</title>
  </head>
  <body>
    <h1>JSP 2.0 Expression Language - Implicit Objects</h1>
    <hr>
    This example illustrates some of the implicit objects available
    in the Expression Language.  The following implicit objects are
    available (not all illustrated here):
    <ul>
      <li>pageContext - the PageContext object</li>
      <li>pageScope - a Map that maps page-scoped attribute names to
          their values</li>
      <li>requestScope - a Map that maps request-scoped attribute names
          to their values</li>
      <li>sessionScope - a Map that maps session-scoped attribute names
          to their values</li>
      <li>applicationScope - a Map that maps application-scoped attribute
          names to their values</li>
      <li>param - a Map that maps parameter names to a single String
          parameter value</li>
      <li>paramValues - a Map that maps parameter names to a String[] of
          all values for that parameter</li>
      <li>header - a Map that maps header names to a single String
          header value</li>
      <li>headerValues - a Map that maps header names to a String[] of
          all values for that header</li>
      <li>initParam - a Map that maps context initialization parameter
          names to their String parameter value</li>
      <li>cookie - a Map that maps cookie names to a single Cookie object.</li>
    </ul>

    <blockquote>
      <u><b>Change Parameter</b></u>
      <form action="implicit-objects.jsp" method="GET">
          foo = <input type="text" name="foo" value="${fn:escapeXml(param["foo"])}">
          <input type="submit">
      </form>
      <br>
      <code>
        <table border="1">
          <thead>
            <td><b>EL Expression</b></td>
            <td><b>Result</b></td>
          </thead>
          <tr>
            <td>\${param.foo}</td>
            <td>${fn:escapeXml(param["foo"])} </td>
          </tr>
          <tr>
            <td>\${param["foo"]}</td>
            <td>${fn:escapeXml(param["foo"])} </td>
          </tr>
          <tr>
            <td>\${header["host"]}</td>
            <td>${fn:escapeXml(header["host"])} </td>
          </tr>
          <tr>
            <td>\${header["accept"]}</td>
            <td>${fn:escapeXml(header["accept"])} </td>
          </tr>
          <tr>
            <td>\${header["user-agent"]}</td>
            <td>${fn:escapeXml(header["user-agent"])} </td>
          </tr>
        </table>
      </code>
    </blockquote>
  </body>
</html>
Wenn Sie mit HTML vertraut sind, sollte Ihnen der Quellcode der Seite recht klar sein. Achten Sie auf diese Zeilen:
<tr>
  <td>${param.foo}</td>
  <td>${fn:escapeXml(param["foo"])} </td>
</tr>
Hier sehen wir HTML-Tags <tr>und <td>. Auf die Tags folgen <td>JSP-Tags, die in geschweifte Klammern eingeschlossen sind ${ }. Beachten Sie jedoch, wie der Wert des URL-Parameters ausgegeben wird foo:
${fn:escapeXml(param["foo"])}
Der Wert wird mithilfe einer JSP-Funktion ausgegeben fn:escapeXml(). JSP-Funktionen kapseln einige Funktionen, die wiederverwendet werden können. In diesem Fall handelt es sich um XML-Escape. Die JSP-Technologie bietet eine große Auswahl an Funktionen sowie die Möglichkeit, eigene Funktionen zu erstellen. Um eine Funktion in einer JSP zu verwenden, müssen Sie die entsprechende Bibliothek, in der die Funktion definiert ist, in die JSP-Datei importieren.

Tag-Bibliotheken

Werfen wir einen Blick auf eine weitere Zeile des Quellcodes (zweite Zeile) oben:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
So werden Tag-Bibliotheken importiert. Die Syntax ist intuitiv. Wir definieren mehrere Dinge:
  • taglib(Tag-Bibliothek – Tag-Bibliothek);
  • url, wo sich diese Bibliothek befindet;
  • ein Präfix (in diesem Fall fn), über das es möglich ist, in dieser Bibliothek definierte Funktionen aufzurufen.
Im obigen Beispiel haben wir uns mit Importfunktionen befasst. Konkret haben wir in unserem Beispiel die JSTL-Bibliothek (JSP Standard Tag Library) importiert. JSTL ist eine Standard-Tag-Bibliothek, die eine Reihe verschiedener Bibliotheken enthält, die in jeder Servlet- und JSP-Implementierung, einschließlich Tomcat, enthalten sind. Eine weitere beliebte Tag-Bibliothek ist core, die wie folgt importiert werden kann:
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
Wie bei ist fndie Notation coptional und allgemein akzeptiert. Diese Bezeichnung findet sich fast überall dort, wo diese Bibliotheken verwendet werden. Hier ist ein Beispiel einer Funktion aus der Kernbibliothek:
<c:out value = "${'<div>'}"/>
Diese Funktion gibt einfach das Tag aus <div>. Diese Funktion führt bereits XML-Escape-Funktionen durch. Diese Funktion ist aus Sicherheitsgründen wichtig, da ${variable}wir durch die direkte Ausgabe des Werts von Variablen über die Skriptinjektion Tür und Tor öffnen.

JSP-Bearbeitung

Nun wollen wir mit neuem Wissen versuchen, Änderungen an der Demoanwendung in Tomcat vorzunehmen. Dazu finden wir den Quellcode dieser Seite in dem Ordner, in dem dieser Servlet-Container installiert wurde. Diese Datei finden Sie unter der folgenden Adresse: ...\Apache Software Foundation\Tomcat 9.0\webapps\examples\jsp\jsp2\el Öffnen Sie dann die Datei implicit-objects.jsp in einem beliebigen Texteditor. Fügen Sie den Import der Kernbibliothek hinzu , und verwenden Sie es dann. Lassen Sie uns etwas Text ausgeben: Was ist JSP?  Die Möglichkeiten in der Praxis verstehen - 12Jetzt aktualisieren wir die Seite mit versteckten Objekten und sehen uns die vorgenommenen Änderungen an: Was ist JSP?  Die Möglichkeiten in der Praxis verstehen - 13

Ergebnisse

Deshalb haben wir Technologien wie JSP oberflächlich untersucht. Wir diskutierten:
  • Was ist JSP?
  • JSP-Seitenstruktur;
  • Verfahren zum Installieren und Ausführen des Tomcat-Servlet-Containers;
  • Demoanwendung für den Zugriff auf versteckte Objekte, die im Tomcat-Server-Distributionspaket enthalten ist;
  • JSP-Funktionen und Tag-Bibliotheken.

Was weiter?

Um das Material zu sichern, können Sie:
  1. Wiederholen Sie alles, was in diesem Artikel beschrieben wird.
  2. Ziehen Sie andere Demoanwendungen in Betracht, die im Tomcat-Server enthalten sind.
  3. Schreiben Sie Ihre eigene Anwendung und stellen Sie sie in einem Servlet-Container bereit. Als Leitfaden können Sie den Artikel Erstellen eines einfachen Webprojekts in IntelliJ Idea Enterprise verwenden. Schritt für Schritt, mit Bildern.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION