SOTE2­2015­05­08.notebook May 08, 2015 JSP: Java Server Pages Servlets: Java­Code mit eingebettetem HTML JSP: HTML­Seiten mit eingebettetem Java­Code (vergleichbar PHP) Skriptelemente 1. Scriplets <% Java_Code %> <jsp:scriplet>Java_Code</jsp:scriplet> 1 SOTE2­2015­05­08.notebook May 08, 2015 Aus dem JSP wird ein "Servlet" geniert. Daher stehen Objekte zur Verfügung wie: application config out page pageContext request response 2 SOTE2­2015­05­08.notebook May 08, 2015 Diese JSP-Datei wird in dieses Servlet umgewandelt und im Browser wie folgt dargestellt mit diesem HTML-Code 3 SOTE2­2015­05­08.notebook May 08, 2015 2. Expressions Syntax: <%= TEXT %> <jsp:expression>TEXT</jsp:expression> Alternative: <% out.write(TEXT); %> 4 SOTE2­2015­05­08.notebook May 08, 2015 3. Deklarationen Syntax: <%! int b = 42; %> <jsp:declaration>int b = 42;</jsp:declaration> Deklarationen nutzt um, um Klassen/Instanzvariablen zu definieren, also Variablen, die Gültigkeit außerhalb der service()­Methoden haben. Damit können andere JSP­Dateien auf diese Variablen zugreifen. 5 SOTE2­2015­05­08.notebook May 08, 2015 4. Direktiven <%@ NAME_DIREKTIVE attribute1="wert1" attribut2="wert2" ... %> <jsp:directive attribute1="wert1" attribut2="wert2" ... >NAME_DIREKTIVE</jsp:directive> 4.1 Page Direktiven z.B. Import von Klassen <%@ page import="java.util.* %> z.B. Erben von Klassen <%@ page extends="myPackage.MyClass" %> 6 SOTE2­2015­05­08.notebook May 08, 2015 4.2 Include Directive <%@ include file="footer.txt" %> Die include­Direktive sorgt dafür, dass der Text in footer.txt in das Servlet hineinkompiliert wird. D.h. Änderungen an footer.txt werden zur Laufzeit ignoriert. 7 SOTE2­2015­05­08.notebook May 08, 2015 5. Aktionen 5.1 Include <jsp:include page="footer.txt" /> 8 SOTE2­2015­05­08.notebook May 08, 2015 5.2 Java Beans Syntax: <jsp:useBean id="instanzname" diese Zeile entspricht: Student hermann = new Student(); Wert auslesen. Entspricht hermann.getName(); Auf der Instanz "hermann" wird der Wert des Attributs "name" auf "hermine" geändert. Entspricht: hermann.setName("Hermine"); JavaBeans sind "normale" Java­Klassen (POJO > Plain Old Java Object), die einer Namenskonvention für die getter und setter genügen. 9 SOTE2­2015­05­08.notebook May 08, 2015 JavaBeans helfen, das "Backend", das in Java implementiert wird vom Frontend (HTML) zu trennen, in dem das Backend keinen HTML Code mehr enthält und das Frontend kein/ kaum Java­Code. Die Java­Beans entsprechen in einem MVC­Pattern dem "Model" (enthält die Daten) und die JSP entspricht dem View (Darstellung) der Daten. 10