Java Code in HTML einbinden
JSP unterscheiden sich zunächst nur wenig von ASP oder PHP Seiten. In HTML binden Sie Tags ein, die eine Scripting – Funktionalität ermöglichen. Im Gegensatz zu PHP unterscheiden sich diese Tags in JSP nach ihrer Funktion.
Eine Ausgabe in die Seite erreichen Sie durch:
Code: /bsp/kap1/hallowelt.jsp
<%= /* Dies ist ein Expression Tag.
* Der Inhalt wird in die Seite ausgegeben.
* Der Code endet nicht mit Semikolon. */
message+ " aus der JSP"
%>
Dieser sogenannte Expression-Tag wertet seinen Inhalt aus und gibt das Ergebnis als Zeichenkette in die Seite aus. Sie können Ausdrücke und Variablen verwenden (<%= 1>2 %>). Auch Java-Objekte werden in Zeichenketten umgewandelt (<%=new java.util.Date() %>) und ausgegeben. Am Ende des Ausdrucks steht kein Semikolon.
Code ohne direkte Ausgabe wird in sogenannten Scriptlets untergebracht. Der Tag <% .. %> hat kein Gleichheitszeichen:
Code: /bsp/kap1/hallowelt.jsp
<%
// Dies ist ein Scriptlet-Block.
// Hier kann Code zur Ausf?hrung gebracht werden.
// Zeilen enden immer mit Semikolon.
String message="Hallo Welt";
%>
Tomcat verarbeitet eine JSP in zwei Schritten: Zunächst wird aus der JSP eine Java-Quellcode-Datei mit der Endung *.java erzeugt, deren Name entfernt and den Namen der JSP erinnert. Sie finden diese Dateien unter CATALINA_HOME/work/Standalone/localhost/jspkurs/. Wenn Sie sich die *.java Datei ansehen stellen Sie fest, dass dort mit einem Haufen out.print(..)-Befehlen Ihr gesamtes HTML ausgegeben wird. Im zweiten Schritt wird die Quellcode-Datei dann mit dem normalen Java-Compiler kompiliert, was eine Datei gleichen Namens mit der Endung *.class ergibt. Die *.class Datei wird von der Java-VM ausgeführt.
Insgesamt ist dies kein übles Verfahren, denn
- Durch das Kompilieren der JSPs als Java Klassen erhalten wir im Fehlerfall aussagekräftige Meldung des Compilers,
- Die Abarbeitung des kompilierten Codes geschieht sehr schnell.
Der Nachteil ist allerdings, dass Parsen und Kompilieren beim ersten Aufruf der Seite relativ lange dauern.
Wenn Sie den Quellcode einer generierten *.java-Datei betrachten erkennen Sie, dass Scriptlets innerhalb einer automatisch erzeugten Methode mit Name _jspService(..) ausgeführt werden. Die ganze JSP-Seite wird in diese Methode gepackt und mit Print-Befehlen ausgegeben. Sie können deshalb innerhalb des Scriptlet-Tags keine Methoden (Funktionen) definieren.
Um Methoden oder globale Variablen zu definieren, steht in JSP ein weiterer Tag, der Declaration-Tag, zur Verfügung:
Code: /bsp/kap1/hallowelt.jsp
<%!
/**
Methoden werden Im Declarations - Tag definiert. */
private String encode(String raw) {
raw=raw.replaceAll("&","&");
raw=raw.replaceAll("<","<");
raw=raw.replaceAll("\"",""");
raw=raw.replaceAll("\'","’");
return raw;
}
%>
Der Declaration-Tag beginnt mit <%!. Benutzen Sie den Declaration-Tag, wenn Sie Methoden definieren wollen oder globale Variablen verwenden.
Schließlich noch die Kommentare. Sie können innerhalb der Tags die üblichen C-Style Kommentare verwenden, also // und /* .. */. Daneben gibt es für JSP einen eigenen Kommentartag:
<%-- Ich bin ein JSP Kommentar --%>