Java 2 Enterprise Edition (J2EE)

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Objektorientierte Programmierung
Strategie (Strategy / Policy) Ein objektbasiertes Verhaltensmuster Stephan Munkelt, Stefan Salzmann - 03IN.
Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
1 Kapitel 9: Datenbankapplikationen. 2 Datenbankapplikationen MS Access Embedded SQL JDBC Application JDBC Applet Java Servlet Java Server Pages Cold.
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Ein Beispiel in Java.
Software Engineering Praktikum SS 2003
Software Engineering Praktikum WS 2002/03
1 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Übung 4 Mehrstufige Client/Server-Systeme mit JSPs, Servlets und JavaBeans (Web-Container)
Internet-Datenbanken
Tomcat Web-Server installieren
Internetzugriff mit Strings und Streams
Java 2 Enterprise Edition (J2EE)
Ausnahmen HS Merseburg (FH) WS 06/07.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Internet-Datenbanken Grundlagen des WWW HTML HTTP Web-Anbindung von Datenbanken Servlets JSP JDBC XML Datenmodell Schemabeschreibungssprachen Anfragesprachen.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
Indirekte Adressierung
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
Internet-Technologien und Java
Internet-Technologien und Java. Beispiel: Im Browser wird diese Zeile eingegeben. Wie nennt man diese eingegebene Zeile.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Dynamische Webseiten mit PHP Oder: LAMP - The open way.
Dynamische Webseiten Java servlets.
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Hassan Bidani Jallal Alami Rahmouni FH Wiesbaden
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework.
Programmieren mit JAVA
Programmieren mit JAVA
PRJ 2007/1 Stefan Dissmann Motivation Problem: Benutztes Objekt kennt den Kontext seiner Nutzung nicht. Daher kann es in besonderen Situationen keine Entscheidung.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
Filiale pea09 Die Einbindung der MySQL-Datenbank in das Servlet.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Klassen und Objekte
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Web-Anwendungsentwicklung à la MVC. Übersicht Über Georg Heeg Ein industrielles Beispiel Web-Anwendungen aus Smalltalker-Sicht MVC für das Web Programmierdemo.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
FQTQ ShowCase Prototyp einer Applikation zur Beratungsunterstützung.
Einführung Servlets/JSPs
Seminar Internet - Technologie
Servlet III Java Webanwendung Webcontainer Web.xml
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Servlets Servlets und relevantes API Servlets & SQL via JDBC Implementierungs - Spezifika Architektur Überblick Vertikaler Prototyp / Spezifikation.
Programmierprojekt Java Server Pages
Java Server Pages Sergej Keterling
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Generative Softwareentwicklung in der Praxis Olaf Kaus, „Java User Group“, Hannover 6.Oktober 2003.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Robuste Programme durch Ausnahmebehandlung
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.
Benutzerdefinierte Tags
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Java 2 Enterprise Edition (J2EE) Sascha Baumeister Software Architect Specification Lead JSR086 IBM Deutschland Entwicklung GmbH
1 JavaServer Pages Stephan Baldes JavaServer Pages Einführung
Oracle ADF FacesSeite 1 Oracle ADF Faces OPITZ CONSULTING Oracles Implementierung der JavaServer Faces Spezifikation.
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
 Präsentation transkript:

Java 2 Enterprise Edition (J2EE) Sascha Baumeister Software Architect Specification Lead JSR086 IBM Deutschland Entwicklung GmbH sbaumei@de.ibm.com

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

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

Wichtigste JSP Direktiven JSP Direktiven teilen dem JSP-Compiler für die Übersetzungsphase relevante Information mit. Syntax: <%@ Direktive %> 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.

JSP Direktiven - Beispiel <HTML> <HEAD> <TITLE>JSP Direktiven</TITLE> <%@ page buffer=”none” isThreadSafe=”no” errorPage=”/fehler.jsp” %> </HEAD> <BODY> <%@ taglib uri=”http://www.myserver.com/customtags” prefix=”custom” /> <%@ include file=”Seiteninhalt.html” %> </BODY> </HTML>

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: <%! Deklaration %> Scriptlets sind Java-Codefragmente, die der JSP Compiler in die Service-Methode des zu generierenden Servlets einbauen soll  Syntax: <% Scriptlet %> Expressions sind Java-Ausdrücke, deren Evaluierungs-Ergebnis der JSP Compiler in das zu generierenden Servlet einbauen soll  Syntax: <%= Expression %>

JSP Scripting - Beispiel <HTML> <HEAD> <TITLE>JSP Scripting</TITLE> </HEAD> <BODY> Millisekunden seit 1970: <%= System.currentTimeMillis() %> <P> <%! private int timesThree(int multiplier) { return multiplier * 3; } %> Vielfache von 3: <P> <% for (int index =0; index < 10; index++) { %> <%= index %>.Vielfaches: <%= this.timesThree(index) %> <P> <% } %> </BODY> </HTML> zur Laufzeit Evaluierungs- Ergebnis in HTML einfügen Definition einer Servlet-Methode Iteration Aufruf der neuen Servlet-Methode

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("<HTML><HEAD><TITLE>JSP Scripting</TITLE></HEAD><BODY>"); 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(„</BODY></HTML>“); Einfügen der Methoden-Deklaration Einfügen der Expression Einfügen der Iteration

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.

Wichtigste JSP Standard- Aktionen Die <jsp:useBean> Aktion assoziiert ein neues oder übergebenes Java-Objekt mit einem Namen Die <jsp:getProperty> 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 <jsp:setProperty> Aktion modifiziert ein Property aus einem Java-Objekt aus, indem es den gegebenen String in den passenden Java-Typ konvertiert

JSP Aktionen - Beispiel <HTML> <HEAD> <TITLE>JSP Aktionen</TITLE> </HEAD> <BODY> <jsp:useBean id=„datum“ class=„java.util.Date“ scope=„session“ /> Stunde: <jsp:getProperty name=„datum“ property=„hours“ /> <P> Minute: <jsp:getProperty name=„datum“ property=„minutes“ /> <P> Sekunde: <jsp:getProperty name=„datum“ property=„seconds“ /> <P> </BODY> </HTML> der Tagidentifikator für JSP Standard-Aktionen

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

JSTL Beispiel <HTML><HEAD><TITLE>JSTL Sample</TITLE></HEAD> <BODY> <%-- JSTL Core Tags --%> <%@ taglib uri="/WEB-INF/tld/c-rt.tld" prefix="c_rt" %> <%-- JSTL I18N Formatting Tags--%> <%@ taglib uri="/WEB-INF/tld/fmt-rt.tld" prefix="fmt_rt" %> <%-- JSTL SQL Tags --%> <%@ taglib uri="/WEB-INF/tld/sql-rt.tld" prefix="sql_rt" %> <%-- JSTL XML Tags --%> <%@ taglib uri="/WEB-INF/tld/x-rt.tld" prefix="x_rt" %> <c_rt:if test='<%= request.getParameter("param") != null %>'> Parameter Value: <%= request.getParameter("param") %> </c_rt:if> </body> </html> Tagidentifikator definiert für JSTL Core-Tags

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

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

Beispiel - JSP <HTML> <HEAD> <TITLE>Artikel-Details</TITLE> </HEAD> <BODY> <jsp:useBean id="artikel" class=„de.ba.ArtikelViewBean" scope="session" /> Name: <jsp:getProperty name="artikel" property="name" /> <P> Bestand: <jsp:getProperty name="artikel" property="quantity" /> <P> </BODY> </HTML> unter diesem Namen muß ein Servlet das ViewBean übergeben wichtig bei Übergabe von ViewBeans an JSPs File: jsp/ArtikelView.jsp

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;

Beispiel - Servlet im JSP definierter Name 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!