CodeGym /Kurse /All lectures for DE purposes /JSP: deklarative Möglichkeit, ein Servlet zu definieren

JSP: deklarative Möglichkeit, ein Servlet zu definieren

All lectures for DE purposes
Level 1 , Lektion 466
Verfügbar

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!

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION