SOTE2­2016­05­06.notebook May 06, 2016 JSP: Java Server Pages Servlets: Java­Code mit eingebettetem HTML JSP: HTML mit eingebettetem Java­Code Skriptelemente 1. Skriplets Syntax <% JAVA­CODE %> <jsp:scriplet>JAVA­CODE</jsp:scriplet> Erstes Beispiel 1 SOTE2­2016­05­06.notebook May 06, 2016 JSP­Seiten werden zu Servlets konvertiert: Der JSP­Code (vorherige Seite) wird wie folgt konvertiert: zu finden in Z:\workspaceLuna\.metadata\.plugins\org.eclipse.wst.server.core \tmp0\work\Catalina\localhost\SOTE2­2016­05­06\org\apache\jsp Damit haben wir Zugriff auf die impliziten (vordefinierten) Objekte wie out, request, response usw. ... und so dargestellt 2 SOTE2­2016­05­06.notebook May 06, 2016 2. Expression (entspricht in PHP "echo") Syntax <%= TXT %> <jsp:expression>TXT</jsp:expression> Das entspricht <% out.write(TXT); %> 3 SOTE2­2016­05­06.notebook May 06, 2016 3. Declaration Syntax <%! int a = 2; %> <jsp:declaration>int a = 2;</jsp:declaration> Deklarationen nutzt man, um Klassen­/Instanzvariablen zu definieren, also Variablen, die Gültigkeit auf der gesamten Klasse d.h. außerhalb der doService­Methode haben. Damit könnten andere JSP­Dateien (im gleichen Package) darauf zugreifen. de" o h t e M rvice­ e S " alb innerh außerhalb 4 SOTE2­2016­05­06.notebook May 06, 2016 4. Direktiven Syntax <%@ NAME_DIREKTIVE attrib1="wert1" attrib2="wert2".... %> <jsp:directive attib1="wert1" attrib2="wert2">NAME_DIREKTIVE</ jsp:directive> D 4.1 Page­Direktiven z.B. Import von Klassen <%@ page import="java.util.*" %> z.B. Erben von Klassen <%@ page extends="meinPackage.meineKlasse" %> 5 SOTE2­2016­05­06.notebook May 06, 2016 4.2 Include­Direktive <%@ include file="footer.txt" %> Die include­Direktive sorgt dafür, dass der Text in "footer.txt" in das Servlet hinein­kompiliert wird. D.h. Änderungen von "footer.txt" werden zur Laufzeit ignoriert. 6 SOTE2­2016­05­06.notebook May 06, 2016 5. Aktionen 5.1 Include <jsp:include page="footer2.txt"/> mit jsp:include wird der Inhalt der Datei (hier footer2.txt) zur Laufzeit (d.h. mitjedem Aufruf) eingelesen und der Inhalt in die Seite eingefügt. Mit jsp:include lassen sich Webseiten modular entwickeln. 7 SOTE2­2016­05­06.notebook May 06, 2016 5.2 JavaBeans Syntax <jsp:usebean id="beanname" class="package.KlasenName"> entspricht in Java: "Studentenbohne inst = new Studentenbohne(); entspricht in Java: entspricht in Java: inst.getVorname(); inst.setVorname("Stephen"); 8 SOTE2­2016­05­06.notebook May 06, 2016 JavaBeans sind "normale" Java­Klassen, deren Methoden einer Namenskonvention für die getter und setter verfügen und die einen public Default­Konstruktor haben. JavaBeans helfen, das "Backend" (in Java implementiert) vom Frontend (HTML, CSS) zu entkoppeln, in dem das Backend keinen JavaCode enthält und das Frontend keinen/kaum Java­Code. JavaBeans entsprechen im Sinne eines MVC­Patterns dem Model (enthalten die Daten), die JSP­Seiten den Views (Darstellung) 9