Seminar Internet - Technologie

Slides:



Advertisements
Ähnliche Präsentationen
Allgemeines Name: Ursprünglich: „Personal Home Page Tools“
Advertisements

Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
Software Engineering Praktikum SS 2003
Software Engineering Praktikum WS 2002/03
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Aufbau des Internets Überblick Prof. Dr. T. Hildebrandt
Basis-Architekturen für Web-Anwendungen
Kurze Einführung in ASP
Datenbankzugriff im WWW (Kommerzielle Systeme)
Bastian Cramer, Universität Paderborn Entwurfsmuster für Webanwendungen Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen.
Tomcat Web-Server installieren
Java 2 Enterprise Edition (J2EE)
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
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.
Java: Grundlagen der Sprache
Dynamische Webseiten mit PHP
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
Tomcat (I) Ende 1999 Jakarta-Projekt von Apache, IBM und Sun gegründet
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Programmieren mit JAVA
Programmieren mit JAVA
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Einführung in die Programmierung Datensammlung
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Marcus Haller & René Schulze
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Einführung Servlets/JSPs
Learning By Doing Thema 1: Dynamische Webseiten und Online Datenbanken (Jarka Arnold) Thema 2: Simulationen, Sound, Schnittstellen (Aegidius Plüss) Thema.
Applets Java für’s Web.
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.
Grundlagen: Client-Server-Modell
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
CGI (Common Gateway Interface)
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Programmierprojekt Java Server Pages
Java Server Pages Sergej Keterling
Oliver Spritzendorfer Thomas Fekete
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
Datenanbindung in Webapplikationen
Einführung in PHP 5.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
ASP und JSP im Vergleich Jürgen Knecht Fachhochschule Gießen-Friedberg Fachbereich MNI.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Datenbanken im Web 1.
Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.
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 Servlets Stephan Baldes. 2 Was ist ein Servlet? S E R V L E T = Eine auf Java-Technologie basierte Web-Komponente, die von einem Container.
1 JavaServer Pages Stephan Baldes JavaServer Pages Einführung
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
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.
© 2008 TravelTainment The Amadeus Leisure Group Webanwendungen mit Java - HttpServlets 17.Dezember 2010 Sebastian Olscher Erstprüfer: Hon.-Prof. Dr. H.
 Präsentation transkript:

Seminar Internet - Technologie Java Server Pages Michael Klenke

Inhalt Was sind Java Server Pages. Voraussetzungen für den Einsatz von JSP. Syntax von JSP: Ausdrücke, Scriptlets und Deklarationen Direktiven Implizierte Objekte Aktionen JavaBeans

Was sind Java Server Pages (JSP)? Anfang 1999 von Sun Microsystems entwickelte Technologie, um Java-Code in HTML-Seiten einbetten und beim Abruf der Seite auf dem Server ausführen zu können. Alternative zum Common Gateway Interface (CGI), PHP oder den Active Server Pages (ASP) von Microsoft. Erweiterung von Java Servlets Aktuelle Version: 2.1

HTTP Client Server Architektur

Common Gateway Interface (CGI)

Vor- und Nachteile von CGI Vorteile: Beliebige Programmiersprache Mehrere Clients beeinflussen sich nicht gegenseitig Alle gängigen Webserver unterstützen CGI Nachteile: Hohe Antwortzeiten I.d.R. keine Trennung von Anwendungslogik und HTML-Präsentation

Servlets

Vor- und Nachteile von Servlets Vorteile: Performance (pro Request ein Thread) Plattformunabhängig durch Java Webcontainer können zusätzliche Dienste anbieten Sicherheit (Security) Error-Handling ... Nachteile: Keine Trennung von Logik und HTML-Präsentation Ungeeignet für Designer

Java Server Pages (JSP)

Ausgangspunkt: HTML-Dokument <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>JSP - HelloWorld</title> </head> <body style="text-align:center"> Dies ist eine statische HTML-Seite. </body> </html>

Einfügen von Java-Anweisungen <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>JSP - HelloWorld</title> </head> <body style="text-align:center"> Dies ist eine dynamische JSP.<br /> Es ist jetzt genau: <%= new java.util.Date() %> </body> </html>

Interpretation durch den Browser

Voraussetzungen für den Einsatz von JSP JSP-/Servlet-Engine Apache Tomcat Jetty Oder Applikationsserver Glassfish Jboss Gerimino Java, Standard Edition Java, Enterprise Edition Eine Datenbank (MySQL)

Verzeichnisstruktur Tomcat

Projektverzeichnis Date Web Deployment Descriptor

Web Deployment Descriptor <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>Eine Webanwendung</display-name> <description> Dies ist eine auf JSP basierende Beispielanwendung </description> </web-app>

HelloWorld.jsp

Quelltext von HelloWorld.jsp

JSP - Syntax Bisher ist eine JSP zunächst nichts anderes, als eine um besondere Tags erweiterte HTML-Seite. Diese Tags unterteilen sich in vier Klassen: Scriptlets der Form <% Java-Code %> Deklarationen der Form <%! Java-Code %> Ausdrücke der Form <%= Java-Ausdruck %> Kommentare der Form <%-- Kommentartext --%>

Beispiel für eine if-else-Anweisung <%! private static boolean isDay() { int hour = new java.util.GregorianCalendar().get( … ); if (hour > 6 && hour< 18){ return true; } return false; %> <html> <body> <% if ( isDay() ) { %> Guten Tag … <% } else { %> Gute Nacht … <% } %> </body> </html> java.util.Calendar.HOUR_OF_DAY

Vergleich: Ausdrücke, Scriptlets, Deklarationen Ausdruck Scriptlet Deklaration Tag <%= … %> <% … %> <%! … %> Ausgabe in die JSP Resultat wird direkt in die Seite integriert. Ausgaben in die Erfolgen über die Variable out. Ausgaben sind nicht möglich. Mögliche Anweisungen Auf eine Aus-gabeanweisung beschränkt. Anweisungsfolgen möglich. Vollständige De-klaration von Methoden möglich. Abschluss einer Anweisung Anweisung wird nicht abge-schlossen. Alle Anweisungen werden von einem Semikolon (;) abgeschlossen. Definition von Variablen Ist nicht möglich. Lokale Variablen Globale Variablen

XML-basierte Schreibweise Tag XML-Notation Ausdruck <%= zahl %> <jsp:expression> zahl </jsp:expression> Scriptlet <% out.println("Hello"); out.println("World"); %> <jsp:scriplet> out.println("Hello"); </jsp:scriplet> Deklaration <%! int zahl = 100; <jsp:declaration> int zahl = 100; </jsp:declaration>

Vordefinierte Objekte Innerhalb einer JSP-Datei existieren implizierte Objekte, die in jeder JSP von Anfang an zur Verfügung stehen, ohne das sie vorher über eine Deklaration erstellt wurden. out response application pageContext request exception session page config jspContext

Das request-Objekt request (javax.servlet.http.HttpServletRequest) Ist für Anfragen zuständig, z.B. beim Senden von Formularen aus Formularfeldern an eine JSP-Datei. <html> <head> <title>Ihre Daten</title></head><body> <form name="Eingabe" action="get_Data.jsp" method="post"> Vorname: <input type="text" name="vorname“ ><br> Nachname: <input type="text" name="nachname"><br> <input type="submit" value="Abschicken"> </form> </body> </html> Form.jsp

Das request-Objekt

Das request-Objekt <html> <head><title>Ausgabe</title></head> <body> <% String vn = request.getParameter("vorname"); String nn = request.getParameter("nachname"); out.println("Vorname: " + vn); out.println("<br>Nachname: " + nn); %> </body> </html> get_Data.jsp

Das request-Objekt

Direktiven – Eigenschaften einer JSP Direktiven betreffen die aktuelle JSP-Datei und beeinflussen den Aufbau der JSP-Seite. Sie sind in drei Kategorien aufgeteilt: page include taglib Alle drei Direktiven haben stets die gleiche Form: <%@ NameDerDirektive attribut="Wert" %>

Page Direktive Die page-Direktive gibt Auskunft über die verwen- dete Sprache, kann Java-Klassen importieren und eine Fehlerseite angeben. <%-- Importieren der Java-Klasse 'java.util.Date' --%> <%@ page import="java.util.GregorianCalendar()" %> ... <%-- Verwenden der Klasse 'Date' ohne vollständigen Pfad --%> <% GregorianCalendar cal = new GregorianCalendar();%>

Attribute der page-Direktive Kurzbeschreibung language Definiert die Skripting-Language import Importiert benötigte Klassen und Pakete errorPage Eine relative URL zu einer Seite, die im Fehlerfalle aufgerufen werden soll. isErrorPage Gibt an, ob die seite eine Seite zur darstellung von Fehlern sein soll. contentType Legt den Mime-Typ der Antwort an z.B. „text/html" oder "text/xml“. pageEncoding Bei internationalisierten Seiten geradezu ein Pflicht-Attribut!

Aktionen Neben den Direktiven kennt JSP so genannte Aktionen. Diese sind nichts anderes als bestimmte definierte JSP-Elemente, die eine besondere Funktion ausführen. Derartige Funktionen können sein: Weiterleitung auf eine externe Datei oder Webseite. Einfügen einer externen HTML- oder JSP-Datei. Einbinden einer JavaBean.

JSPs und JavaBeans Die Idee der Beans ist die Aufteilung von Funktion- alitäten in kleine Komponenten, die so genannten Beans. Beans sind normale Java-Klassen, die nach gewissen Regeln geschrieben sind. JavaBeans müssen einen parameterlosen Konstruktor besitzen, über den sie erzeugt werden. Die Attribute bzw. Eigenschaften bestehen aus einer nichtöffentlichen (private) Instanzvariable und öffentlichen Zugriffsmethoden (public), welche umgangssprachlich auch Getter und Setter genannt werden. Die Zugriffsmethoden haben immer die Form setXxx() und getXxx() bzw. isXxx() bei booleschen Attributen.

Die erste Bean Eine Zufallszahl soll von einer Bean ermittelt werden und von der JSP-Datei im Browser angezeigt werden. Eine einfache Bean, die innerhalb einer JSP eingesetzt werden kann. ->Zufallsgenerator Die JSP-Datei ruft die Bean auf. Die Bean ermittelt die Zufallszahl. Das Ergebnis wird an die JSP-Datei zurückgegeben und angezeigt.

Verzeichnisstruktur

Der Bean-Code - Teil 1 package bean; import java.util.Random; public class Randomize { private int obergrenze; private Random r = new Random(); public Randomize() { } …

Der Bean-Code - Teil 2 public int getObergrenze() { return obergrenze; } public void setObergrenze(int obergrenze) { this.obergrenze = obergrenze; public int getZufall() { int zufall = r.nextInt(obergrenze); return zufall; } // class Randomize

Einfügen der Bean

Der JSP-Code <jsp:useBean id="ran" class="bean.Randomize" /> <html> <head> <title>Zufallszahl</title></head> <body> <% ran.setObergrenze(50); int zufall=ran.getZufall(); out.println("Die Zufallszahl lautet: "); out.println(zufall); %> </body> </html>

Ausgabe im Browser

Gültigkeitsbereiche einer JavaBean Durch Scoping lässt sich die Sichtbarkeit von Objekten innerhalb der Web-Applikation regeln. <jsp:useBean id="ran" class="bean.Randomize" scope="session" /> Die Sichtbarkeit ist in verschiedene Levels aufgeteilt. Jedes Level hat eine höhere Sichtbarkeit: page (Standardwert) request session application

Alternativer Aufruf der setter-/getter-Methoden <jsp:useBean id="ran" class="bean.Randomize" /> <jsp:setProperty name="ran" property="obergrenze“, value="50" /> <html> <head> <title>Zufallszahl</title></head> <body> Die Zufallszahl lautet: <jsp:getProperty name="ran" property="zufall" /> </body> </html>

Fazit – Java Server Pages Vorteile: JSP sind effizient Java eröffnet als OO-Programmiersprache mehr Möglichkeiten als Skriptsprachen. Plattformunabhängig Nachteil: Servlet-/JSP-Container ist notwendig: z.B. Tomcat

Quellen Michael Seeboerg Weichselbaum: Java Server Pages. Markt und Technik (2004) Thomas Stark: Java EE 5 Einstieg für Anspruchsvolle. Addison-Wesley, München (Oktober 2006) http://www.jsptutorial.org/ http://de.wikipedia.org/

Seminar Internet - Technologie Vielen Dank ! Java Server Pages