J a v a S e r v l e t s



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

Praktikum Datenbanken und verteilte Systeme SS Java Server Pages und Servlets -

Java zur Realisierung von Internetanwendungen

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

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

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

Webanwendungen mit Java

Web 2.0 Software-Architekturen

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

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

Web 2.0 Software-Architekturen

Überblick über Internet-Technologien

e-commerce Running Tomcat

DB-Aspekte des E-Commerce Schwerpunkt: Techniken. Servlets und JavaServer Pages

Java - Webapplikationen

Java Server Pages (JSP)

Servlets. Marc Monecke

Internetanbindung von Datenbanken

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

Inhaltsverzeichnis. 1. Vortrag. 1. Vortrag Beispiele Quellen Seite 1 / 14

Architekturen Internet-basierter Informationssysteme

Seminar SS 2000 Enterprise Application Intergration

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

Application Server und Continuous Integration

Praktikum aus Softwareentwicklung 2, Stunde 11

Webanwendungen mit Java

Client/Server-Programmierung

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

Java Servlets. Praktikum aus Softwareentwicklung 2. Java Praktikum SS 2010

Java Servlets. Praktikum aus Softwareentwicklung 2. Java Praktikum SS 2009

Web 2.0 Software-Architekturen

Java zur Realisierung von Internetanwendungen

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

Kapitel 12: Datenbanken im Internet

Web-basierte Anwendungssysteme PHP-Einführung

Grundlagen Internet-Technologien. Serverseitige Web-Programmierung mit CGI, Teil II: Perl im Web Version 1.11

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Java RMI Remote Method Invocation

Remote Method Invocation

Kompendium der Web-Programmierung

Kap. 6 Applikationsserver

Internetanbindung von Datenbanken

Entwicklung von Web-Anwendungen auf JAVA EE Basis

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

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

4. Servlets Ein kleiner Einstieg

Berater-Profil Senior Web-Developer (OO-Analyse und -Design) Sun Certified Java Programmer

Datenbanken: Servlets und JSP

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi

Dynamische Webseiten mit PHP. Oder: LAMP - The open way

Datenbanksysteme SS 2007

Praktikum Verteilte Anwendungen

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

Vorlesung Software aus Komponenten

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer

Web-Suche. Eingabeformulare. Websuche: Benutzer-Schnittstelle. Ein einfaches Suchformular. Benutzer-Schnittstelle.

2. Web-Anbindung von Datenbanken

André Maurer Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten

Janeva:.NET meets J2EE

Softwareentwicklung mit Enterprise JAVA Beans

Web-Suche. Benutzer-Schnittstelle

Internet-Datenbanken

Das WWW im Schweinsgalopp

Inhaltsverzeichnis. Zusammenfassung Wydler

ObjectBridge Java Edition

Webbasierte Informationssysteme

Herzlich Willkommen! eine praxisnahe Übersicht. Mit Java ins Web - mb@bebox.franken.de (c) Michael Behrendt -

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

:HE'DWHQEDQN$QELQGXQJ PLW-DYD6HUYOHWVEDVLHUHQG DXI$SDFKH-6HUY2UDFOHL

Internet-Datenbanken. Grundlagen des WWW. Web-Anbindung von Datenbanken XML HTML HTTP. Servlets JSP JDBC

Algorithmen und Programmierung V WS 10/11 Nachklausur am , Uhr Maximal erreichbare Punktzahl: 80 Erforderliche Punktzahl: 40

Konzepte von Betriebssystem-Komponenten Middleware RMI

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

AVID-Übung 3. EJB mit JBoss und Eclipse. 17. Juni Andreas I. Schmied Abteilung Verteilte Systeme Projektgruppe AspectIX

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

Websuche: Benutzer-Schnittstelle. Eingabeformulare. Ein einfaches Suchformular. Web-Suche. Benutzer-Schnittstelle.

Einführung: Verteilte Systeme - Remote Method Invocation -

Dynamische Webseiten

Kapitel 5 Serverseitige Technologien

CampusTec Robert Radestock Michael Zerna

7.1.5 Java RMI Remote Method Invocation ( (

Webbasierte Informationssysteme

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

1. Erläutern Sie am Beispiel einer 3-schichtigen Client-Server-Architektur die Prinzipien einer guten Architektur. Dialogsteuerun

V by WBR1/BFH-TI 2011 by MOU2/BFH-TI

Webbasierte Informationssysteme

ASP: Active Server Pages

Internet. HTML Programmierung Grundlagen HTML Programmierung für Fortgeschrittene CGI Programmierung PHP Programmierung Programmieren mit JavaScript

Auslieferungsmethoden im Performancevergleich Zieleinlauf mit Java

Servlets - Praktische Beispiele

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation Teil 3 RMI over IIOP

Mini Servlets. Abschlussprojekt Internetprogrammierung. Stefan Wehr. 17. Juli 2006

Remote Method Invocation

PHP eine Einführung. Dipl.-Inf. Frank Hofmann. 18. November Potsdam

Comes Spezifikation. Stefan Wehr Prof. Dr. Peter Thiemann. 14. Dezember 2005

PPS-Design einer eigenen WWW-Homepage WS 2002/2003. Anforderungen an eine Webseite

Grundlagen Internet-Technologien INF3171

Transkript:

J a v a S e r v l e t s Eine Einführung (C) J.M.Joller 1

Inhalt Mitgelieferte Bibliothekselemente Überblick Funktionsweise und Architektur Interaktion Resümee (C) J.M.Joller 2

Überblick Was sind Servlets? Warum Servlets? Servlets schreiben Web-Server Praktischer Einsatz Alternativen (C) J.M.Joller 3

Was sind Servlets? Serverseitige Anwendungen Ersetzen CGI-Scripts Dynamische Erstellung von HTML-Dokumenten (C) J.M.Joller 4

Warum Servlets? Effizient Ein Servlet wird nur bei der ersten Ausführung geladen; danach nur Aufruf der Methoden (C) J.M.Joller 5

Warum Servlets? Persistent Servlets erhalten ihren Zustand zwischen Requests aufrecht; sie bleiben resident im Speicher (C) J.M.Joller 6

Warum Servlets? Portabel Da sie in Java geschrieben sind: Write once, serve everywhere Robust Dank Zugriff auf das gesamte JDK (C) J.M.Joller 7

Warum Servlets? Sicherheit Serverseitige Ausführung: es werden die Sicherheitsmechanismen des Web-Servers übernommen, z.b. SSL Client hat keinen direkten Zugriff Sicherung auch per Java Security Manager möglich (C) J.M.Joller 8

Warum Servlets? Erweiterbar Da sie in einer OO-Sprache geschrieben sind können sie beliebig ausgebaut werden Akzeptanz Viele Hersteller bieten Web-Server mit Unterstützung für Servlets (C) J.M.Joller 9

Web-Server Integrierte Servlet Unterstützung Lotus Domino Go Web Server Live Software Jrun Sun Java Web Server W3C Jigsaw Server IBM Visual Age WebRunner Toolkit Netscape Enterprise Server U.v.m. (C) J.M.Joller 10

Web-Server Unterstützung als Add-On Apache Web Server New Atlanta ServletExec Gefion Software WAICoolRunner (C) J.M.Joller 11

Servlets schreiben Benötigt ausserdem: JDK (Java Development Kit) JSDK (Java Servlets Development Kit) Ist integriert in das JDK ab v1.2 J2EE (Java Enterprise Development Kit) (C) J.M.Joller 12

Servlets schreiben Development Tools Symantec Visual Cafe Pro Borland JBuilder (C) J.M.Joller 13

Praktischer Einsatz Anwendungen, die dynamisch erstellte HTML-Seiten benötigen Warenkorbsysteme News-/Diskussionsforen Zugriff auf alte Datenbestände (C) J.M.Joller 14

Alternativen CGI Scripts ServerSide JavaScript Microsoft Active Server Pages (C) J.M.Joller 15

Funktionsweise und Architektur Vergleich CGI Scripts & Servlets Life-Cycle Implementierung Servlet Beispiele (C) J.M.Joller 16

Vergleich: CGI Scripts Für jeden Request wird ein neuer Prozess gestartet Prozesse laufen getrennt vom Web-Server Bei jedem Request muss neu interpretiert werden Bei Perl: jeweils auch ein neuer Prozess für den Interpreter (C) J.M.Joller 17

Vergleich: Servlets Für jeden Request wird ein neuer Thread gestartet Threads laufen im Server-Prozess Kompilierte Binaries müssen nicht mehr interpretiert werden (C) J.M.Joller 18

Life Cycle Einfaches OO-Design Drei wichtige Methoden im Leben eines Servlets: init() Einmaliger Aufruf durch Server nachdem eine Instanz des Servlets erstellt wurde Ressourcen des Servlets werden erzeugt und initialisiert (C) J.M.Joller 19

Life Cycle service() Behandelt jeden Request eines Clients Aufruf erst nachdem init() ausgeführt wurde Meist nicht direkt implementiert; normalerweise in der Klasse HttpServlet implementiert ServletRequest und ServletResponse (C) J.M.Joller 20

Life Cycle destroy() Beim Schliessen eines Servlets am Ende ausgeführt Garbage collection: Cleanup aller Ressourcen die in init() erzeugt wurden Methode, um Informationen für den nächsten Start des Servlets zu speichern (C) J.M.Joller 21

Implementierung I GET Methode Servlet wird direkt aus dem Browser aufgerufen Es wird eine neue HTML-Seite generiert http://host/servlets/servlet (C) J.M.Joller 22

Implementierung II POST Methode Servlet wird z.b. von einem Formular aufgerufen Es wird eine neue HTML-Seite generiert <form action=http://host/servlets/servlet method=post>... </form> (C) J.M.Joller 23

Implementierung III Kombination von GET und POST Methode, Beispiel: Beim Aufruf des Servlets wird ein Formular angezeigt: GET Methode Das gleiche Servlets verarbeitet die gesendeten Informationen des Formulars: POST Methode (C) J.M.Joller 24

Implementierung IV Server Side Includes SSI Servlet wird mit Hilfe des <SERVLET> Tags in eine bestehende HTML-Seite (Endung.JHTML bzw..shtml) eingebunden Ausgabe des Servlets wird dynamisch in die HTML-Seite eingefügt <servlet code=servlet.class>... </servlet> (C) J.M.Joller 25

Implementierung V JavaServer Pages JSP Sogenannte Scriplets werden direkt in die HTML-Seite eingebunden (Endung.JSP) Ausgabe des Scriplets wird dynamisch in die HTML-Seite eingefügt <% request.getremoteaddress() %> (C) J.M.Joller 26

Servlet Beispiel I public class ServletName extends HttpServlet { public void init(servletconfig config) throws ServletException { super.init(config); } (C) J.M.Joller 27

Servlet Beispiel I Forts. } public void doget(httpservletrequest req, HttpServletResponse resp) throws ServletException,IOException { resp.setcontenttype( text/html ); PrintWriter = resp.getwriter(); out.println( <html><body> ); out.println( Hello World ); out.println( </body></html> ); out.close(); } (C) J.M.Joller 28

Servlet Beispiel II public class ServletName extends HttpServlet { public void init(servletconfig config) throws ServletException { super.init(config); } (C) J.M.Joller 29

Servlet Beispiel II Forts. public void dopost(httpservletrequest req, HttpServletResponse resp) throws ServletException,IOException { resp.setcontenttype( text/html ); PrintWriter = resp.getwriter(); out.println( <html><body> ); Enumeration parameters = reg.getparamernames(); String param = null; String value = null; (C) J.M.Joller 30

Servlet Beispiel II Forts. } while (parameters.hasmoreelements()) { param = (String) parameters.nextelement(); out.println(param+ : + req.getparameter(param)); } out.println( </body></html> ); out.close(); (C) J.M.Joller 31

Interaktion Servlet Chaining HTTP Tunneling RMI (Remote Method Invocation) JDBC (Java Database Connectivity) (C) J.M.Joller 32

Servlet Chaining Mehrere Servlets arbeiten an der Bedienung eines Requests zusammen Ähnlichkeit zum piping unter UNIX Die Ausgabe des ersten Servlets wird von einem zweiten Servlet weiterverarbeitet (C) J.M.Joller 33

Servlet Chaining Anwendungsbeispiele: Übersetzung von Texten auf internationalen Web-Sites Filterfunktion für Datenbankabfragen nach einem spzifischen Benutzerprofil Herausfiltern von angepassten HTML-Tags und Einsetzen des gewünschten Textes, z.b. Firmenname Contentfitting: Servlet konvertiert Pages zu einheitlichem Standard, z.b. frame-based nach table-based (C) J.M.Joller 34

HTTP Tunneling Lesen und Schreiben serialisierter Objekte mittels einer HTTP-Verbindung Unterprotokoll innerhalb des HTTP-Protokolls (tunneling) Objekte können jeweils vom Client/Server gelesen/geschrieben werden (C) J.M.Joller 35

HTTP Tunneling Vorteile: Wegen des serializeable interface einfach zu nutzen Schnell für einfache Objekte Programmierer muss nicht mit Kommunikationslayern arbeiten Tunneling funktioniert auch durch Firewalls (C) J.M.Joller 36

HTTP Tunneling Nachteile: Alle Objekte müssen das serializeable interface implementiert haben Das interagierende Servlet muss sich auf dem selben Server befinden wie das Applet Da Applet als Client genutzt wird müssen kompatible Browser genutzt werden Langsam bei grösseren Objekten (C) J.M.Joller 37

RMI Mitgelieferte Bibliothekselemente API für verteilte Anwendungen in reinen Java Implementationen Erlaubt es einem Client und einem Server durch Objekte über ein Netzwerk zu kommunizieren Client führt Methoden eines Proxy Objekts aus, welches dann die selben Methoden auf dem Server ausführtsicht des Clients: gleiche Java VM Sicht des Clients: gleiche Java VM (C) J.M.Joller 38

RMI Mitgelieferte Bibliothekselemente Vorteil: Applets sind nicht mehr nur auf den einen Server beschränkt, auf dem sie laufen (C) J.M.Joller 39

JDBC Mitgelieferte Bibliothekselemente Kommunikation zwischen einem Servlet und einer Rel. Datenbank Servlet kann mit einer DB auf dem selben Server oder auf einem anderen kommunizieren Vgl. Applets: Kommunikation nur mit dem Server, von welchem das Applet geladen wurde (C) J.M.Joller 40

Resümee Vorteile Nachteile Zukunftsausblick (C) J.M.Joller 41

Vorteile Clientunabhängig Plattformunabhängig Gesicherte Umgebung Nur eine Programmiersprache (Java): keine weitere Skriptsprache nötig (C) J.M.Joller 42

Nachteile (Noch) Keine grosse Verbreitung (C) J.M.Joller 43

Zukunftsausblick CGI Scripts noch stark vertreten (C) J.M.Joller 44

Noch Fragen? Servlet Tutorial Sun Java Site http://java.sun.com/docs/books/tutorial/servlets/ http://java.sun.com/products/servlet/ (C) J.M.Joller 45