JSP

Eine Java Server Page oder JSP ist ein HTML – oder XML – Dokument mit eingebettetem Java – Code . Eine JSP – Seite wird in einem geeigneten Anwendungsserver ( zum Beispiel eines ausführen J2EE – Server). Wenn die gewünschte Seite, bieten Anwendungsserver die Seite für aa zu kompilieren Servlet . JSP – Seiten verwendet , oft mit Servlets zusammen , so dass die Präsentation von JSPs geklärt wird , während die eigentliche Verarbeitung von Abfragen , die von Servlets behandelt.

Vorteile von JSP

JSP hat eine Reihe von Vorteilen gegenüber zB statischen HTML-Seiten:

  1. Dynamische Generierung von Websites : Websites Aussehen kann entsprechend den Eingang variiert werden, da beispielsweise in der Abfragezeichenfolge ( URL ‚one + seine Parameter).
  2. Der Zugriff auf Standardobjekten : Wenn Sie eine JSP zu schreiben, gibt es Zugriff auf eine Reihe von nützlichen Standardobjekten. Die Objektanforderung enthält Informationen über die Client – Applikation und alle Eingangsdaten. Wenn auf Daten in der Antwort manipuliert werden, verdeutlichte es mit dem Objekt Antwort . Die Objekte Sitzung und Anwendung können jeweils während einer vollständigen Sitzung Client – Daten von einem JSP oder Servlet auf den nächsten halten. ein ganzer Lauf der Web – Anwendung.
  3. Der Zugriff auf die Standard – Präsentationslogik : Viele Anwendungsserver bieten Taglibs mit vordefinierten Darstellungslogik , die JSP – Seiten von in Anspruch nehmen können. So erleichtert die Aufgabe des Programmierers.
  4. Trennung von Darstellung und Logik : Sie können einen HTML – Programmierer ohne tiefere Programmierkenntnisse setzen JSP – Seiten zu entwickeln, während mehr technischen Entwickler Java – Code in Servlets und anderen zugrunde liegenden Komponenten bereitstellen können.
  5. Gute Ausnahmebehandlung : Bei Ausnahmen von dem Client – JSP bietet eine Reihe von Sound – Navigation und Anzeigeelementen weitergegeben werden.

JSP – Syntax

JSP-Spezifikation stellt 6 Syntaxelemente.

Richtlinien

In anderen Richtlinien JSP-Seiten enthalten sein können (statisch, als Rohtext oder zur Compile-Zeit) und Taglibs, Klassen und Servlets können importiert werden. Es kann auch angeben, ob die Seite eine Fehlerseite ist oder nicht, usw. Richtlinien sind von der Form

<% @ Richtlinie%>

Zum Beispiel:

<% @ Taglib prefix = "myPrefix" uri = "myUri" %>

Statements

Aussagen von der Form

<%! Statement%>

Zum Beispiel:

<%! int i = 0; %>

Gültige Java – Code

Java-Code (auch Variable und Methodendeklarationen) kann direkt in den JSP-Seiten eingefügt werden (obwohl es zweckmäßig sein kann, ist es inkonsequent, aber Model-View-Controller-Entwurfsmuster).

Java – Code wird in JSP – Seiten genannt eingefügt Scriptlets .

Scriptlets ist von der Form

<% Scriptlet%>

Ein Beispiel für ein scriptlet könnte sein:

<%
 String name = null;
 if (request.getParameter ( "name") == null) {
%>
<% @ Include-Datei = "error.html" %>
<%
 } Else {
 name = request.getParameter ( "Name");
 }
%>

Ausdrücke

Java-Ausdrücke können eingefügt werden. Der Begriff wird zum Zeitpunkt der Abfrage ausgewertet, und die daraus resultierende einfache Art oder objektreferences toString Methode wird aufgerufen; wobei das Ergebnis davon ist in der Seite eingeschoben. Expression ist von der Form

<% = Ausdruck%>

Zum Beispiel:

<% = "Dies ist ein Ausdruck" %>

Aktionen

JSP – Seiten können so genannte Aktionen ausführen , die anderen JSP – Seiten umfassen dynamisch die Eigenschaften von sogenanntem Zugriff auf Träger Beans (Java – Objekte, unter anderem können Daten für eine Client – Sitzung enthalten) und leiten die neuen JSP – Seiten.

Beachten Sie, dass Aktionen der einzige JSP – Design sind , die verwendet XML – Syntax ISTF. JSP Standard – Syntax.

Aktionen sind von der Form

<Jsp: Aktionsname> Möglicherweise. Körper </ jsp: Aktionsname>

Zum Beispiel:

<Jsp: include page = "scripts / login.jsp" />
<Jsp: include page = "copyright.html" />
<Jsp: include page = "/ index.html" />
<Jsp: include page = "scripts / login.jsp">
 <Jsp: param name = "username" value = "jsmith" />
</ Jsp: include>

Kommentare

Die Kommentare sind von der Form

 <! - Kommentar ->

Kommentare können nicht ineinander verschachtelt werden.

Model-View-Controller – Paradigma

Sun empfiehlt , dass das Model-View-Controller – Muster mit den JSP – Dateien verwendet werden soll , um die Präsentation, die Verarbeitung von zu entkoppeln HTTP – Anfragen und Datenspeicherung. Entweder Servlets oder getrennte JSP – Dateien verarbeiten , die Verarbeitung von Abfragen, wonach auf eine JSP – Seite übertragen steuern, deren Aufgabe es ist , nur dann ausgegeben (HTML) zu erzeugen.

Weitere Plattformen auf Basis von Model-View-Controller – Muster vorhanden ist , zum Beispiel, Javaserver Faces , Apache Struts und Frühling .

Beispiele für JSP-Seiten

Eine einfache JSP

Hier ist ein Beispiel für eine sehr einfache JSP , die erzählen , wie spät ist es auf dem Anwendungsserver , wo der JSP-on installiert ist:

<% Java.util.Date date = neues java.util.Date (); %>
<Html>
<Head> <title> JSP Demo </ title> </ head>
<Body>
<H1> JSP Demo </ h1>
<P>
Zeit auf dem Server: <% = date%> />
</ P>
</ Body>
</ Html>

Servlets von JSP erzeugt

Unabhängig davon , wie der JSP Compiler erzeugt Java – Quellcode für ein Servlet oder Erzeugen von Java – Bytecode direkt, ist es lehrreich, zu sehen , wie der Compiler eine JSP – Seite an ein Servlet konvertiert (dies geschieht bei der ersten Anforderung für die Seite).

Eingang JSP

 <% @ Page Errorpage = "myerror.jsp" %>
 <% @ Page import = "com.foo.bar" %>
 <Html>
 <Head>
 <%! int serverInstanceVariable = 1;%>
 ...
 <Int% bezogene Stapel lokaler Variable = 1; %>
 <Table>
 <Tr> <td> <% = "erweiterten Inline-Daten" + 1%> </ td> </ tr>
 ...

resultierender Servlet

 Paket jsp_servlet;
 import java.util. *;
 import java.io. *;
 importieren javax.servlet. *;
 importieren javax.servlet.http. *;
 importieren javax.servlet.jsp. *;
 importieren javax.servlet.jsp.tagext. *;
 import com.foo.bar; // als Ergebnis Importierte <% @ page import = "com.foo.bar" %>
 Import ...
 _myservlet Klasse implementiert javax.servlet.Servlet, javax.servlet.jsp.HttpJspPage {
 // eingefügt SOM
 // Ergebnis von <%! int serverInstanceVariable = 1;%>
 int serverInstanceVariable = 1;
 ...
 public void _jspService (javax.servlet.http.HttpServletRequest Anfrage,
 javax.servlet.http.HttpServletResponse response)
 wirft javax.servlet.ServletException,
 java.io.IOException
 {
 javax.servlet.ServletConfig config = ...; // die Servlet-Config erhalten
 Objektseite = this;
 Page Seite Context context = ...; // erhalten den Kontext für diese Seite anfordern
 javax.servlet.jsp.JspWriter pageContext.getOut out = ();
 HTTP Session session = request.getSession (true);
 try {
 out.print ( "<html> \ r \ n");
 out.print ( "<head> \ r \ n");
 ...
 // von <int%, bezogen Stapel lokale Variable = 1; %>
 int lokale Variable Stapel basiert = 1;
 ...
 out.print ( "<table> \ r \ n");
 out.print ( "<tr> <td>");
 // Hinweis toStringOrBlank () konvertiert, die Expression in einen String oder wenn
 // Der Ausdruck null ist, verwendet er die leere Zeichenkette.
 // von <% = "erweiterten Inline-Daten" + 1%>
 out.print (toStringOrBlank ( "expanded Inline-Daten" + 1));
 out.print ( "</ td> </ tr> \ r \ n");
 ...
 } Catch (Exception _exception) {
 aufzuräumen // und leiten zwei Fehlerseite in <% @ Page Errorpage = "myerror.jsp" %>
 }
 }
 }

Veröffentlichungen

  • Java Server Pages, Third Edition , Hans Bergsten , O’Reilly & Associates, Inc. , Sebastopol, Kalifornien, 2003. ISBN 0-596-00563-6