Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Java 2 Enterprise Edition (J2EE) Sascha Baumeister Software Architect Specification Lead JSR086 IBM Deutschland Entwicklung GmbH

Ähnliche Präsentationen


Präsentation zum Thema: "Java 2 Enterprise Edition (J2EE) Sascha Baumeister Software Architect Specification Lead JSR086 IBM Deutschland Entwicklung GmbH"—  Präsentation transkript:

1 Java 2 Enterprise Edition (J2EE) Sascha Baumeister Software Architect Specification Lead JSR086 IBM Deutschland Entwicklung GmbH

2 Teil IV – JSP / JSTL / ViewBeans Java ServerPages (JSP) JSP Standard Tag Library (JSTL) ViewBeans

3 JSP Java ServerPages (JSP) ist eine Erweiterung von HTML für das Design von dynamischen Web- Seiten View JSP-Seiten bestehen aus standard HTML, JSP Direktiven, JSP Scrips, und JSP Aktionen JSPs werden mittels eines JSP-Compilers in Java Servlets übersetzt verkehrte Servlets

4 Wichtigste JSP Direktiven JSP Direktiven teilen dem JSP-Compiler für die Übersetzungsphase relevante Information mit. Syntax: Eine Page-Direktive teilt dem JSP-Compiler Meta- Information über die JSP-Seite mit: Threadsicherheit, Servlet-Superklasse, etc. Eine TagLib-Direktive erlaubt die Verwendung von benutzerdefinierten Tags in einer JSP-Seite Eine Include-Direktive weist den JSP-Compiler an den Inhalt eines Files in das zu generierende Servlet aufzunehmen.

5 JSP Direktiven - Beispiel JSP Direktiven

6 JSP Scripting JSP Scripting erlaubt die direkte Verbindung von Java Code mit HTML Deklarationen deklarieren Methoden und Variablen für das zu generierende Servlet Syntax: Scriptlets sind Java-Codefragmente, die der JSP Compiler in die Service-Methode des zu generierenden Servlets einbauen soll Syntax: Expressions sind Java-Ausdrücke, deren Evaluierungs- Ergebnis der JSP Compiler in das zu generierenden Servlet einbauen soll Syntax:

7 JSP Scripting - Beispiel JSP Scripting Millisekunden seit 1970: Vielfache von 3:.Vielfaches: zur Laufzeit Evaluierungs- Ergebnis in HTML einfügen Definition einer Servlet-Methode Iteration Aufruf der neuen Servlet-Methode

8 JSP Scripting - Übersetzung package de.ba; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class GeneratedJSPServlet extends HttpServlet { private int timesThree(int multiplier) { return multiplier * 3; } public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); response.getWriter().println(" JSP Scripting "); response.getWriter().println("Millisekunden seit 1970: + Integer.toString(System.currentTimeMillis())); response.getWriter().println(Vielfache von 3:"); for (int index =0; index < 10; index++) { response.getWriter().println(Integer.toString(index) +.Vielfaches: + Integer.toString(this.timesThree(index))); } response.getWriter().println( ); } Einfügen der Expression Einfügen der Methoden-Deklaration Einfügen der Iteration

9 JSP Aktionen JSP Aktionen sind Tags, die in Java-Code übersetzt werden und ähnlich wie Scriptlets/Expressions in die Service-Methode des zu generierenden Servlets einfließen 6 Standard Aktionen werden von jedem JSP Compiler ünterstützt, benutzerdefinierte Aktionen sind über die Include-Direktive einbindbar JSR 052 definiert zusätzlich eine umfangreiche Standard Tag Library für JSPs (JSTL). Die Spezifikation ist zur Zeit beim JCP als Proposed Final Draft verfügbar, Jakarta beheimatet die bisher einzige JSTL-Implementierung.

10 Wichtigste JSP Standard- Aktionen Die Aktion assoziiert ein neues oder übergebenes Java-Objekt mit einem Namen Die Aktion liest ein Property aus einem Java-Objekt per Java Introspection aus, konvertiert den Wert in einen String und fügt das Ergebnis in die HTML-Ausgabe ein Die Aktion modifiziert ein Property aus einem Java-Objekt aus, indem es den gegebenen String in den passenden Java-Typ konvertiert

11 JSP Aktionen - Beispiel JSP Aktionen Stunde: Minute: Sekunde: der Tagidentifikator für JSP Standard-Aktionen

12 JSP Standard Tag Library (JSTL) Die Verwendung von Java-Scripts in JSPs führt zu unlesbarem Code Tag-Libs verwenden! Die Erstellung von Custom-Taglibs ist aufwendig und führt ebenfalls zu schwer wartbarem Code! JSTL bietet einen umfangreichen Satz von vielfältig einsetzbaren Tags JSTL bietet ebenso Tags zur Einbindung von XML, SQL und Expressions JSTL ist in JSR 052 definiert worden

13 JSTL Beispiel JSTL Sample '> Parameter Value: Tagidentifikator definiert für JSTL Core-Tags

14 ViewBeans ViewBeans sind benutzerdefinierte Java-Klassen, die dem JavaBean Layout entsprechen ViewBeans sollten nur Properties besitzen, die Java Basis- Typen oder Strings sind leichte Konvertierbarkeit für JSP Aktionen! ViewBeans werden aus Modell-Daten erzeugt, Exceptions beim Konvertieren werden in Servlets bearbeitet ViewBeans werden JSPs zur Darstellung/Modifikation übergeben Komponenten-Vertrag zwischen Servlets und JSPs

15 Applikations-Architektur Servlet rufe Model Model - View - Controller JNDI JDBC JSP rufe View, übergebe ViewBeans Datenbank-Modellierer Web-Designer J2EE-Entwickler erzeuge ViewBeans

16 Beispiel - JSP Artikel-Details Name: Bestand: File: jsp/ArtikelView.jsp wichtig bei Übergabe von ViewBeans an JSPs unter diesem Namen muß ein Servlet das ViewBean übergeben

17 Beispiel - ViewBean package de.ba; public class ArtikelViewBean { private final String name; private final int quantity; public ArtikelViewBean(String name, int quantity) { this.name = name; this.quantity = quantity; } public String getName() { return this.name; } public int getQuantity() { return this.quantity; }

18 Beispiel - Servlet package com.ibm.ba; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class ArtikelAbfrageServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { try { String name = request.getParameter("name"); int quantity = String.parseInt(request.getParameter("name")); ArtikelViewBean artikel = new ArtikelViewBean(name, quantity); request.getSession(true).setAttribute("artikel", artikel); this.getServletConfig().getServletContext().getRequestDispatcher("jsp/ArtikelView.jsp").forward(request, response); } catch (Throwable exception) { exception.printStackTrace(response.getWriter()); } im JSP definierter Name das Servlet übergibt das ViewBean im Session-Context, daher scope=session im JSP!


Herunterladen ppt "Java 2 Enterprise Edition (J2EE) Sascha Baumeister Software Architect Specification Lead JSR086 IBM Deutschland Entwicklung GmbH"

Ähnliche Präsentationen


Google-Anzeigen