1.1 Einführung in JSP
Es gibt zwei beliebte Arten, ein Servlet zu schreiben: Imperativ und Deklarativ . Mit dem ersten haben wir uns bereits befasst – es handelt sich tatsächlich um ein Servlet. Die zweite heißt JSP (Java Server Pages) und wir werden sie jetzt kennenlernen.
Beispiel für eine Servlet-JSP:
<html>
<body>
<% out.print(2*5); %>
</body>
</html>
Nicht sehr ähnlich zu dem klassischen Servlet, das wir gewohnt sind, oder? So ist das. JSP ist eine HTML-Seite mit Java-Code-Einfügungen (grün hervorgehoben) .
Sie sehen, wenn Sie viel Java-Code in einem Servlet und wenig HTML-Code haben, dann ist die Verwendung eines klassischen Servlets für Sie bequemer . Aber was ist, wenn Sie eine große HTML-Seite benötigen, in der nur ein paar Zeilen vom Server geändert werden?
In diesem Fall wäre es am einfachsten, diese HTML-Seite zu erstellen und den Java-Code direkt darin auf dem Server auszuführen.
1.2 JSPs kompilieren
Schauen wir uns ein weiteres Beispiel an:
<html>
<body>
<%
double num = Math.random();
if (num > 0.95) {
%>
<h2>You are lucky, user!</h2><p>(<%= num %>)</p>
<%
}
%>
</body>
</html>
Wir erhalten eine Zufallszahl und wenn diese größer als 0,95 ist, geben wir den Text „Du hast Glück, Benutzer!“ aus.
Java-Code ist hier blau hervorgehoben . Normal (nicht hervorgehoben) – HTML-Code und rot – Service-Tags , die helfen zu verstehen, wo sich der Java-Code und wo der HTML-Code befindet.
Fällt Ihnen etwas Seltsames auf? Die schließende geschweifte Klammer "}"
befindet sich in einer anderen "code block"
. Wie schreibt man solchen Code richtig? Wie funktioniert es überhaupt?
Die Antwort wird super einfach sein :)
Nachdem der Webserver eine JSP-Datei gefunden hat, kompiliert er sie in ein klassisches Servlet. Basierend auf der obigen JSP-Seite wird dieses Servlet generiert:
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {
PrintWriter out = response.getWriter();
out.print("<html> ");
out.print("<body>");
double num = Math.random();
if (num > 0.95) {
out.print("<h2>You're lucky user! </h2><p>(" + num + ")</p>");
}
out.print("</body>");
out.print("</html>");
}
}
Der Webcontainer hat gerade den Servlet-Code generiert, wobei der HTML-Code in Text umgewandelt wurde und die Java-Code-Einfügungen zu regulärem Java-Code wurden!
GO TO FULL VERSION