Web-Programmierung (WPR)



Ähnliche Dokumente
Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck

Sitzungszustand. Vorläufige Version 309 c 2005 Peter Thiemann

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS Universität zu Lübeck

Programmieren II. Wie kommen Daten von einem Webserver? Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Servlet-zentrierte Architektur von Web-Anwendungen mit Java Servlets, Java Server Pages (JSPs) und Java Beans

Client/Server-Programmierung

Programmieren II. Remote-Programmierung. Institut für Angewandte Informatik

Java zur Realisierung von Internetanwendungen

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter

Web 2.0 Software-Architekturen

Web- Applikationen. in Java-Web

Java - Webapplikationen

Java Servlet Technology

Java Server Pages (JSP)

Inhalt: Konfiguration: web.xml ; server.xml Workflow: Weiterleitung von Requests Lektion II-IV Lektion V-VI

Projekt Systementwicklung. Wie kommen Daten von einem Webserver? Java-Applikationsserver. Servlets, JSP. Handout S. 1. Dr.

Fortgeschrittene Servlet- Techniken. Ralf Gitzel

Application Server und Continuous Integration

JSP und Servlet Programmierung

Kapitel 5 Serverseitige Technologien

Dynamische Webseiten mit JavaServer Pages (JSP)

Web-Technologien und Java-Web-Anwendungen. der große Überblick

Es wird das Struts <html:option> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.

Servlets und Java Server Pages

JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel

J2EEKurs. J2EE Servlets und JavaServer Pages. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, Universität Freiburg, Germany

Java zur Realisierung von Internetanwendungen

Einleitung JavaServer Pages Erweiterungsmechanismen Beispiel Fazit. JavaServer Pages. Seminar Webprogrammierung WS04/05. Timothy Burk. 6.

Auslieferungsmethoden im Performancevergleich Zieleinlauf mit Java

FHZ. Servlets/JSP. Lernziele. Hochschule Technik+Architektur Luzern. Inhalt

Datenbanken: Servlets und JSP

Übung: Verwendung von Java-Threads

Einführung Servlets. JEE Vorlesung Teil 2. Ralf Gitzel

Tomcat Konfiguration und Administration

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

JSP Direktiven. Präprozessor-Anweisungen, die in die JSP-Datei eingebettet sind und vor dem eigentlichen Übersetzungsvorgang ausgeführt JSP

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Webanwendungen mit Java

Softwareentwicklung mit JAVA EE

Das WWW im Schweinsgalopp

Java: Vererbung. Teil 3: super()

Einführung in die Programmierung

AJAX Implementierung mit Joomla!

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Inhaltsverzeichnis. Zusammenfassung Wydler

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Vorkurs C++ Programmierung

Web 2.0 Software-Architekturen

Internet und WWW Übungen

Programmierung von Client/Server- Anwendungen

OS IDE Webserver Integration des Webservers in die IDE Wireshark Webserver II Dynamisches Webprojekt in Eclipse

A Java EE component is a self-contained functional software unit that is assembled into a Java EE. communicates with other components.

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

Java Webentwicklung (mit JSP)

Applets I. Grundlagen der g Applet-Programmierung

ESB - Elektronischer Service Bericht

Programmieren in Java

Datenbanksysteme SS 2007

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte:

WebService in Java SE und EE

Installation des edu- sharing Plug- Ins für Moodle

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Architektur des agimatec-validation Frameworks

easylearn Webservice lsessionservice Interface für Single Sign On (SSO)

Installation des GeoShop Redirector für Apache (Stand ) ================================================================

Schritt 4: Hallo Enterprise Bean

Collax VPN. Howto. Vorraussetzungen Collax Security Gateway Collax Business Server Collax Platform Server inkl. Collax Modul Gatekeeper

Themen. Apache Webserver Konfiguration. Verzeichnisse für Web-Applikationen. Server Side Includes

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Installation des edu-sharing Plug-Ins für Moodle

C O C O O N. Wo ist Cocoon in die Apache Projekte einzureihen?

Planung für Organisation und Technik

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Auszug aus JAX-WS Folien

Vertiefte Grundlagen Graphentheorie

Die Technologie der Mumie

Der IBM Websphere Portalserver

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5

Transkript:

Web-Programmierung (WPR) Vorlesung VI. JavaServets u. Java Server Pages (JSP) mailto:wpr@gruner.org 1

14.1 Java Servlets Java Servlets = Java-Klassen Dynamisches Laden beim Aufruf Laufzeitumgebung = Servlet-Container Standalone Servlet Engine (Apache Tomcat) Application Server (IBM-Websphere Appl. Server) Einbindung in Standard-WebServer (Apache HTTP-Server) 2

14.1 Java Servlets Web-Server Servlet-Container Web-Client http.//myportal.tfh-berlin.de Web-Applikation HTML HTML HTML HTML HTML HTML CSS HTML HTML HTML JPG HTML HTML HTML JSP HTML HTML HTML Servlet HTML HTML HTML Java Comp., DB 3

14.1 Java Servlets Vorteil Portablilität Leistungsfähigkeit Effizienz Sicherheit Einfachheit Bedeutung Vollständige Implementierung in Java. Multithreading, Serialisierung, sowie Leistungsfähigkeit von Java (Anbindung Legacy Systeme, Datenbank,...) Einmal geladen verbleiben Servlets im Speicher des Servlet-Container. Keine Erzeugung von Kind Prozessen wie bei CGI. Java stelle robuste Laufzeitumgebung zur Verfügung sowie Sicherheitsmechanismen des Java Security Managers Servlet-API = einfach u. Übersichtlich, z.b.: SessionTracking 4

14.1 Java Servlets Java Servlet API - Packages javax.servlet javax.servlet.http HttpServlet HttpServletRequest HttpServletResponse 5

14.1 Java Servlets package webmonitorlog; import javax.servlet.*; import javax.servlet.http.*; public class WebMonitorLogServlet extends HttpServlet { protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { dopost(request, response); } } protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException {... } 6

14.1 Java Servlets dopost Servlet-Methode protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { { response.setcontenttype( text/html ); PrintWriter printwriter = response.getwriter(); PrintWriter.println( <html> ); printwriter.println( <head><title>webmonitorlog</title> </head> ); printwriter.println( <body ); printwriter.println( <h1>hello MonitorLog</h1> ); printwriter.println( </body></html> ); } 7

14.1 Java Servlets 8

14.2 Servlet-Lebenszyklus Servlet wird ERST instanziiert, wenn es gebraucht wird. Alle (auch parallele) Anfragen an dieses Servlet laufen über nur diese eine Instanz. Beispiel: Zähler... counter++; response.setcontenttype( text/html ); PrintWriter pw = response.getwriter(); pw.println( <html> ); pw.println( <head><title>webmonitorlog</title> </head> ); pw.println( <body ); pw.println( <h1>hello MonitorLog call + counter + </h1> ); pw.println( </body></html> );... 9

14.2 Servlet-Lebenszyklus Initialisierung init(servletconfig serletconfig); Zur Laufzeit des Servlet genutzte Methoden dopost() doget() Aufräumarbeiten destroy(); 10

14.3 Bereitstellung Einspielen einer Web-Applikation => Deployment Besteht aus: Servlets, HTML-, JSP-Dokumente, Hilfsklassen, Grafiken, CSS, JavaScript,... Dateien Web-Applikation => 1 Datei => WAR 11

14.3 Bereitstellung WAR-Archiv Aufbau WEB-INF index.html WAR File web.xml classes lib MonLogServlet. class HelloWorldServlet. class derby class log4j-1.2.14. jar 12

14.3 Bereitstellung Aufbau des Deployment Descriptors web.xml <?xml version="1.0" encoding="utf-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet>..</servlet> <servlet-mapping>... </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app> 13

14.4 Informationsbeschaffung Methoden des Servlet API HttpServletRequest Methode GetServerName() GetServerPort() GetRemoteAddr() GetRemoteHost() GetQueryString() GetMethod() GetServletPath Beschreibung Name des Server-Rechner Port des W eb-servers IP-Adresse des Client Hostname des Clients URL-kodierte Query-String HTTP-Methode Pfadanteil der Servlet-URLs 14

14.4 Informationsbeschaffung HttpServletRequest - Formularzugriffe Methode getparameter(string name) getparametervalues(string name) Beschreibung liefert Wert für Formularfeld name liefert Werte für Formularfelder name HTTP-Header Methode getheadernames() getheader(string name) Beschreibung Liste aller Header-Namen Header W ert als String 15

14.5 Response-Generierung response.setcontenttype(string) PrintWriter pw = response.getprintwriter() HTTP-Status => WebServer (default) oder response.setstatus(int status) status={sc_ok; SC_NOT_FOUND; SC_INTERNAL_SERVER_ERROR} response.setheader(string name, String value) response.sendredirect() 16

14.5 Single Sign On (SSO) 17

14.6 Web-Sessions Benutzerinformationen über einen Request hinaus speichern (z.b.: Einkaufswagen) Cookies sind möglich Session Tracking API HttpSession Methode Beschreibung setattribute(string name, Object value) Sessiondaten speichern getattribute(string name) Sessiondaten lesen getattributenames() Namen aller Sessiondaten erfragen removeattribute(string name) Sessiondaten entfernen 18

14.6 Web-Sessions HttpSession Methode isnew() invalidate() getcreationdate() getlastaccessedtime() getid() Beschreibung true, wenn getsession() neue Session angelegt hat Session wird manuel beendet Zeitpunkt des Session-Beginns Zeitpunkt der letzten Client-Anfrage liefert Session Id 19

14.7 Java Server Pages Trennung von Präsentation und Inhalt deklarative API für Web-Designer Reduzierung von Java auf die dynamischen Teile eines Dokumentes Erstellung statischer Bestandteile mit gewöhnlichen HTML-Tools vollständiger Zugriff aufs Java API 20

14.8 JSP-Konstrukte Scriptlets JSP-Ausdrücke Deklarationsanweisungen Interpreteranweisungen 21

14.8.1 Scriptlets Kodierung beliebiger Java Anweisung in JSP-Dokument <% Scriptlet Code %>... <% if(username.startswith( G )){%> <h1>aktueller Benutzer G</h1> <%} else { %> <h1>aktueller Benutzer not G</h1> <% }%>... 22

14.8.1 Scriptlets Vordefinierte Objekte eines JSP-Dokumentes Objekt request response out session application config Beschreibung HttpServletRequest Objekt HttpServletResponse Objekt PrintW riter Objekt HttpSession Objekt ServletContext Objekt ServletConfig Objekt 23

14.8.2 JSP-Ausdrücke Bewertung eines Java Ausdrucks zur Laufzeit <%= Java Ausdruck %> entspricht <% out.println(java Ausdruck) %> <h1> <%= request.getparameter( name )%> </h1> 24

14.8.3 Deklarationsanweisungen Definition zusätzlicher Attribute und Methoden für die resultierende Servletklasse <%! Java Code %> <%! %> private String strasse; private boolean checkaddress(request) {... } 25

14.8.4 Interpreter-Anweisungen Konfiguration des resultierenden Servlets <%@ page attributename= attributevalue %> <%@ page attribute1= attributev1 attribute2= attributev2 %> Import von Java-Packages und Einbinden externer Dateien <%@ includefile= relativer_url %> <%@ taglib uri= taglibrary.tld prefix= pre %> 26

14.8.4 Interpreter-Anweisungen Servlet Configuration Attribut import errorpage iserrorpage contenttype session buffer autoflush Bedeutung import von Java Klassen in den aktuellen Namensraum Registrierung einer anderen JSP als ErrorHandler Konfiguration einer JSP als ErrorHandler. Zugriff auf Fehlerinformation über exception Objekt MIME-Type des Dokumentes Festlegung, ob JSP automatisch an einer Session geteiligt ist. Default = true Definition der Puffergröße des Printwriters in KB oder none für Ausschalten Festlegung, ob obiger Puffer automatisch gefluscht werden soll, falls er voll ist (default) 27

14.9 JavaBeans und JSPs JavaBeans = Komponentenmodell von Java JavaBean ist eine Java-Klasse, wenn getter/setter Methoden für Attribut-Zugriffe zur Verfügung stellt. JavaBean => Datencontainer für Darstellung 28

14.9.1 JSP-Aktionen Zugriff auf JavaBeans von JSP durch deklarative Aktionen (JSP-Tags) Objekt erzeuge <jsp:usebean id= bezeichner value= classname /> Property lesen <jsp:getproperty name= strasse value= classname /> Property setzen <jsp:setproperty name= bezeichner property= propertyname value= classname /> 29