e-commerce Running Tomcat

Ähnliche Dokumente
Web 2.0 Software-Architekturen

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

Java - Webapplikationen

MCRServlet Table of contents

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

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

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

Java zur Realisierung von Internetanwendungen

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

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

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

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

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

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

WebService in Java SE und EE

Der lokale und verteilte Fall

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

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Java Server Pages (JSP)

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

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

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

Übungen zu Softwaretechnik

Web- Applikationen. in Java-Web

[DvBROWSER] Offline-Viewer für [DvARCHIV] und [DvARCHIVpersonal] Version 2.2

Planung für Organisation und Technik

Wiederholung: Beginn

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

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

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

Themen. Web Service - Clients. Kommunikation zw. Web Services

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

Java Webentwicklung (mit JSP)

Unsere Webapplikation erweitern

Grundlagen verteilter Systeme

Die Installation eines MS SQL Server 2000 mit SP3a wird in diesem Artikel nicht beschrieben und vorausgesetzt.

Web 2.0 Software-Architekturen

Anleitung über den Umgang mit Schildern

In dem unterem Feld können Sie Ihre eintragen, wenn sie im System hinterlegt wurde. Dann wird Ihnen Ihr Passwort noch einmal zugeschickt.

Aus unserer Projekt- und Schulungserfahrung Oracle TechNet

S7-Hantierungsbausteine für R355, R6000 und R2700

Java: Vererbung. Teil 3: super()

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

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

Informationen zum neuen Studmail häufige Fragen

Anleitung zur Webservice Entwicklung unter Eclipse

Auslieferungsmethoden im Performancevergleich Zieleinlauf mit Java

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

ObjectBridge Java Edition

Client/Server-Programmierung WS2007/08. EJB/JSP: Schritt-für-Schritt Anleitung

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

Ursprung des Internets und WWW

Technologiepark 20, D Paderborn, Tel. (+49) , Fax. (+49) Servicemodul aus Faxverteiler.com

Praktikum aus Softwareentwicklung 2, Stunde 11

Online-Publishing mit HTML und CSS für Einsteigerinnen

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

Medea3 Print-Client (m3_print)

Clusterportal Interaktiv Text

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Studentische Lösung zum Übungsblatt Nr. 7

Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog.

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

ID VisitControl. Dokumentation Administration Equitania Software GmbH cmc Gruppe Seite 1

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

Aufklappelemente anlegen

Vertiefte Grundlagen Graphentheorie

Datenbanksysteme SS 2007

Erstellen eigener HTML Seiten auf ewon

Viele Bilder auf der FA-Homepage

Übung - Konfigurieren einer Windows 7-Firewall

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

TimeSafe Installationsanleitung mit InfotechStart

ejgp Webseite Kurzeinführung

Installations Guide für YAJSW und DTLDAP

Einführung in die Programmierung

Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken. Upload- / Download-Arbeitsbereich

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

ecaros2 - Accountmanager

ITT AQUAVIEW WEB-Server. Kurzbedienungsanleitung

Ihr IT-Administrator oder unser Support wird Ihnen im Zweifelsfall gerne weiterhelfen.

Überblick über Internet-Technologien

Auto-Provisionierung tiptel 31x0 mit Yeastar MyPBX

WEBSEITEN ENTWICKELN MIT ASP.NET

Internet und Datensicherung für Frankfurter Schulen mit einem Bandlaufwerk unter MS Windows NT Server Frage:

JSP und Servlet Programmierung

Virtueller Campus. Virtueller Campus Horw mit interaktiver Steuerung. HowTo: Externe Bibliotheken

IT-Zertifikat: Allgemeine Informationstechnologien II PHP

Dokumentenverwaltung im Internet

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

QTrade GmbH Landshuter Allee München Seite 1

Wie funktioniert das WWW? Sicher im WWW

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

Guide DynDNS und Portforwarding

Anbindung des eibport an das Internet

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

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

Vorgehensweise bei Lastschriftverfahren

Internet und WWW Übungen

Transkript:

e-commerce Running Tomcat Servlets im Tomcat Web-Container deployen Prof. Dr. Nikolaus Wulff

Das BookStore Servlet Prof. Dr. Nikolaus Wulff ecommerce 2

HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation, die auf TCP/IP basiert. Die ausgetauschten Nachrichten sind mit der HyperText Markup Language (HTML) formatiert. Ein Browser fordert mittels der HTTP GET Methode ein Dokument vom Webserver an, dieser schickt es dann an den Client zurück. Prof. Dr. Nikolaus Wulff ecommerce 3

Standard HTML 1: get X.html 2: Datei lesen Browser 3: X.html Web-Server X.html + einfache Sprache (HTML) nur statische Informationen & Verknüpfungen GET http://www.fh-muenster.de:80/docs/welcome.html Methode Protokoll Server DSN + Port symbolischer Pfad Dokument Prof. Dr. Nikolaus Wulff ecommerce 4

HTML und CGI-Bin Die HTML Seiten sind statisch hinterlegt und erlauben es nicht ein interaktive Client/Server Anwendungen zu bauen. Um mehr als nur Werbung in das WWW stellen zu können, benötigt man für e-business so etwas wie eine Bestellung aufgeben... Man behalf sich mit dem Common-Gateway- Interface (CGI) um auf dem Server externe Prozesse aufzurufen, die dynamisch HTML generierten Prof. Dr. Nikolaus Wulff ecommerce 5

Von CGI zu den Servlets Externe Prozesse sind eine teure Ressource. Es fehlt die Integration in den Webserver. Sun entwickelte daher die Servlet API als PlugIn für den Webserver. Anstatt als eigenständiger Prozeß laufen Servlets als Thread innerhalb der JVM. Servlets kapseln die GET/POST Methoden von HTTP in der Java Umgebung. Da Servlets in Java geschrieben sind stehen nun alle Möglichkeiten wie CORBA, EJB, JDBC, JMS etc. dem Webserver zur Verfügung. Prof. Dr. Nikolaus Wulff ecommerce 6

Java-Servlets 1: get/post servlet/x X.java Browser 7: Xout Web-Server 6: Xout 2: call X.class a: übersetzen + einfache Sprache (Java) + Dynamik HTML im Java-Code über out.println(... ) mit DB-Zugriffen usw. Servlet-Engine 5: Ausgabe DB X.class 4: X ausführen 3: Class Datei laden (einmal) Java-Compiler (javac) b: erzeugen X.class Prof. Dr. Nikolaus Wulff ecommerce 7

Die Servlet Klassenhierarchie <<Interface>> ServletRequest (from serv let) service GenericServlet (from servl et) service() service <<Interface>> ServletResponse (from servl et) Request kapselt die Anfrage Response kapselt die Antwort <<Interface>> HttpServletRequest service HttpServlet doget() dopost() service <<Interface>> HttpServletResponse Session kapselt den Status 0..1 <<Interface>> HttpSession ServletException (from serv let) throws throws I OException (from io) PrintWriter (from io) 1 Prof. Dr. Nikolaus Wulff ecommerce 8

Eigene Servlets einbinden <<Int erface>> HttpServletRequest (from http) service HttpServlet (from http) doget() dopost() service <<Int erface>> HttpServletResponse (from http) 0..1 HTML-Page MyServlet as <<Int erface>> Response HttpSession (from http) doget() dopost() sql (from java) Prof. Dr. Nikolaus Wulff ecommerce 9

Lebenslauf eines Servlets Ein Client ruft ein Servlet per GET/POST auf. Das Servlet wird vom Webserver geladen Das Servlet wird einmalig mit der init()-methode initialisiert, das Servlet kann nun z.b. eine Datenbankverbindungen initialisieren, einen EJB oder CORBA Server kontaktieren Ressourcen laden, etc. Das Request-Objekt wird vom Webserver initialisiert. Es wird die doget dopost-methode des Servlets aufgerufen. Prof. Dr. Nikolaus Wulff ecommerce 10

Lebenslauf eines Servlets (II) Das Servlet schreibt seine Anwort in den Ausgabestrom des Response-Objekts. Der Webserver wertet den Response aus und schreibt die Antwort per HTTP an den Client. Beim Herunterfahren der ServletEngine oder falls eine maximale Lebensdauer für das Servlet im Webserver definiert ist, wird die destroy()- Methode des Servlets ausgeführt, um eventuelle Aufräumarbeiten auszuführen. Prof. Dr. Nikolaus Wulff ecommerce 11

Servlet Sequenzdiagramm : Kunde Browser WebServer HttpRequest HttpServlet HttpResponse get servlet GET create create servi ce doget read write Prof. Dr. Nikolaus Wulff ecommerce 12

Infrastruktur Damit ein Servlet in einem WebContainer läuft muss es in seine Umgebung kopiert werden. Dieser Vorgang heisst: Deployment physisches Kopieren aller Ressourcen in ein Verzeichnis oder Packen als WebArchive *.war logisches Bekanntmachen per web.xml als Bestandteil einer WebApplikation Dies sind recht umständliche Schritte, die sich jedoch automatisieren lassen... Prof. Dr. Nikolaus Wulff ecommerce 13

Tomcat in Eclipse starten Tomcat kann in der Eclipse IDE integriert und und für Testzwecke administriert werden. Plugin: com.sysdeo.eclipse.tomcat_3.0.0 Tomcat läßt sich aus Eclipse heraus starten, stoppen. Diese vereinfacht den Deploymentprozess. Der jeweilige Projektworkspace wird in den Tomcat Pfad mit eingebunden und steht sofort zur Verfügung. Die jeweilige Webapplikation wird dann automatisch im Tomcat aktualisiert und steht für Testzwecke zur Verfügung. Prof. Dr. Nikolaus Wulff ecommerce 14

Tomcat integrieren Prof. Dr. Nikolaus Wulff ecommerce 15

Tomcat Manager Prof. Dr. Nikolaus Wulff ecommerce 16

web.xml <?xml version="1.0"?> <!DOCTYPE web-app PUBLIC "-//Sun... <web-app> <servlet> <servlet-name>helloworld</servlet-name> <servlet-class>de.workshop.helloservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>helloworld</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>»web.xml«im Hello Modul wie oben anpassen. Sie macht das Servlet beim Server bekannt und sorgt für das Mapping. Prof. Dr. Nikolaus Wulff ecommerce 17

build.xml <target name="deploy" depends="undeploy,init" > <jar jarfile="${war}.war" basedir="${dist}"/> <copy file="${war}.war" todir="${deploy.dir}"/> <copy todir="${deploy.dir}/${war}"> <fileset dir="${dist}"/> </copy> <delete file="${war}.war"/> <delete dir="${dist}"/> </target> <target name="undeploy" depends="undeploytool,init"> <delete file="${deploy.dir}/${war}.war"/> <delete dir="${deploy.dir}/${war}"/> </target> Ant Script»build.xml«im Hello Modul wie oben anpassen. Es regelt das Deployment. Prof. Dr. Nikolaus Wulff ecommerce 18

HelloServlet.java Nun können wir das Hello Servlet erzeugen: Paket»de.workshop«anlegen Klasse»HelloServlet«von der Basisklasse»javax.servlet.http.HttpServlet«ableiten eine»doget«methode implementieren ensprechende Includes einbinden Nach dem alles compiliert die»build.xml«ausführen und Tomcat starten. Im Browser»http://localhost:8080/HelloWorldServlet/Hello«aufrufen Prof. Dr. Nikolaus Wulff ecommerce 19

HelloWorld Servlet public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { } // 1. Zugriff auf den Ausgabestrom des HTML Dokuments java.io.printwriter writer = response.getwriter(); // 2. Erzeugung eines HTML Dokuments writer.println("<html>"); // 2.A Standard Kopf mit Title für den Browser writer.println("<head>"); writer.println("<title> HelloWorld Servlet </TITLE>"); writer.println("</head>"); // 2.B Der HalloWorld HTML Seiten Inhalt als Body writer.println("<body>"); writer.println("<h1> Hallo World </H1>"); writer.println("lokale Zeit +new java.util.date()+"<br>"); writer.println("</body>"); writer.println("</html>"); // 3. Den Ausgabestrom schliessen writer.close(); Prof. Dr. Nikolaus Wulff ecommerce 20

Übung Wir schreiben ein Hello World Servlet eine Anfrage (Get-Request) wird mit der Antwort Hallo World beantwortet. Notwendige Schritte: Erzeugen einer Klasse HelloServlet abgeleitet von HttpServlet Überladen der doget Methode Ausgabe von Hello World Deployment in die Umgebung des WebServers Testen des Servlets und Deployments Prof. Dr. Nikolaus Wulff ecommerce 21

HttpServletRequest Die Anfrage Parameter lassen sich immer aus dem HttpServletRequest Objekt ermitteln. Es bietet vordefinierte Methoden wie: Session getsession() Cookie[] getcookies ServletInputStream getinputstream() sowie allgemeine Query-Methoden um die (Key,Value)-Paare, wie sie z.b. beim Abschicken eines Formulars übertragen werden, abzufragen: String[] getparameternames() String getparamerter(string key); Prof. Dr. Nikolaus Wulff ecommerce 22

HttpServletResponse Die Rückgabe der Antwort an den Client-Browser geschieht mit dem HttpServletResponse. Er bietet vordefinierte Methoden wie: addcookie(cookie acookie) ServletOutputStream getoutputstream() PrintWriter getwriter() sowie allgemeine Methoden um den Inhalt des Response dem Webbrowser bekannt zu geben: void setcontenttype(string mimetype) void setcontentlengsth(int length) Prof. Dr. Nikolaus Wulff ecommerce 23

Übung Wir schreiben ein MirrorServlet: jede Anfrage wird mit einer formatierten Ausgabe der Request Parameter beantwortet. Notwendige Schritte: Neues Projekt wie beim HelloServlet anlegen Klasse»servlet.MirrorSerlet«erstellen Auslesen der Request Parameter Zurückschreiben als aufbereitete Tabelle Deployen und Testen des Servlets Dieses Servlet eignet sich zum Testen von Übergabeparametern aus einem Formular... Prof. Dr. Nikolaus Wulff ecommerce 24

Lösung MirrorServlet public class MirrorServlet extends HttpServlet { /** * POST verwendet die GET Mehthode. */ public void dopost(httpservletrequest req, HttpServletResponse res) throws ServletException,IOException { doget(request, response); } /** * GET baut eine HTML Datei auf und erzeugt * die Tabelle per Methode parametertable. */ public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { beginhtml(request, response); parametertable(request, response); endhtml(request, response); } Prof. Dr. Nikolaus Wulff ecommerce 25

Lösung MirrorServlet (II) /** * Schreibe einen Html Kopf. */ private void beginhtml(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { PrintWriter out = res.getwriter(); out.println("<html>"); out.print("<head><title>mirrorservlet</title></head>"); out.println("<body>"); out.println("<h1>mirror Servlet </h1>"); } /** * Schreibe das Ende der Html Datei. */ private void endhtml(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { PrintWriter out = res.getwriter(); out.println("</body>"); out.println("</html>"); } Prof. Dr. Nikolaus Wulff ecommerce 26

Lösung MirrorServlet (III) private void parametertable(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { PrintWriter out = res.getwriter(); Map map = req.getparametermap(); out.println("<h2>parameter</h2>"); out.println("<center><table border='1'width='50%'>"); out.println("<tr><th>schlüssel</th><th>wert</th></tr>"); Iterator keys = map.keyset().iterator(); while (keys.hasnext()) { String key = (String) keys.next(); String val = req.getparameter(key); out.print("<tr>"); out.print("<td>" + key + "</td>"); out.print("<td>" + val + "</td>"); out.println("</tr>"); } out.println("</table></center>"); } Prof. Dr. Nikolaus Wulff ecommerce 27