Grundbausteine einer Webapplikation mit Java EE 6

Größe: px
Ab Seite anzeigen:

Download "Grundbausteine einer Webapplikation mit Java EE 6"

Transkript

1 Hochschule München Fakultät 07 Informatik und Mathematik Grundbausteine einer Webapplikation mit Java EE 6 Veranstaltung: Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen Bearbeitet von: Thomas Haarbach (Matrikelnummer: ) Studiengruppe: Betreut von: IB6A Dipl. Inf. Michael Theis Vorgelegt am: Studienfach: Wirtschaftsinformatik

2 1 Inhaltsverzeichnis 2 Einleitung Allgemeine Grundlagen Das Word Wide Web Was ist eine Webapplikation? Identifizierung und Adressierung von Ressourcen im Internet URI, URL und URN HTTP-URLs Das Hypertext Transfer Protocol Ablauf einer HTTP-Kommunikation HTTP-Messages HTTP-Request HTTP-Methoden HTTP-Request Parameter HTTP-Header... 8 HTTP-Response HTTP-Statuscodes Cookies und Session Cookies Aufbau eines Cookies Session mit Cookies Mögliche Probleme Web-Techniken Grundbausteine einer Webapplikation mit dem Java Servlet API Einführung Unterschied zu anderen Technologien Beziehung zur Java EE Was ist ein Servlet? Was ist ein Servlet Container? Das Interface Servlet init()-methode service()-methode destroy()-methode I

3 4.2.4 Lebenszyklus eines Servlet Asynchronous Processing Basisklassen zur Erstellung von Servlets Die Basisklasse GenericServlet Die Basisklasse HttpServlet Datenaustausch und Datenhaltung Request und Response Der Request Das Interface ServletRequest Das Interface HttpServletRequest Die Response Das Interface ServletResponse Das Interface HttpServletResponse ServletConfig und ServletContext Das Interface ServletConfig Das Interface ServletContext Verhältnis zwischen ServletConfig und ServletContext Dispatching Requests Interface RequestDispatcher Servlet Filtering Das Interface Filter init()-methode dofilter()-methode dodestroy()-methode Lebenszyklus eines Filters Implementierung eines Filters Cookies und Sessions Das Interfaces HttpSession Die Klasse Cookie Erzeugen einer Session Deployment Descriptor und Annotations Die web.xml Annotations II

4 5 Fazit und Zusammenfassung Anhang... X 6.1 Abbildungsverzeichnis... X 6.2 Listingverzeichnis... X 6.3 Tabellenverzeichnis... XI 6.4 Literaturverzeichnis... XI 6.5 Ehrenwörtliche Erklärung... XIII III

5 2 Einleitung Als am 29. Oktober 1969 die ersten Datenpakete zwischen der University of California in Los Angeles und dem Stanford Research Institute ausgetauscht wurden, konnten die Entwickler des ARPANet damals noch nicht ahnen, welche Bedeutung dies für die Zukunft haben wird [1]. Knappe 20 Jahre später wurde durch Tim Berners-Lee die Grundlage für das World Wide Web (WWW) geschaffen. Noch heute basieren der Austausch und die Anzeige von Webinhalten auf dem von ihm entwickelten Hypertext Transfer Protocol (HTTP) sowie der Hypertext Markup Language (HTML) [2]. Weitere 20 Jahre, nachdem Berners-Lee das WWW konzipiert hatte und es seit 1993 der Öffentlichkeit zur Verfügung steht, können wir uns ein Leben ohne nur noch schwer vorstellen. Egal ob man Google Maps nach dem Weg fragt, eine Rechnung online bezahlt, eine Reise bucht oder unterwegs online ein Fußballspiel verfolgt, das WWW ist unser täglicher Begleiter geworden. Einer Studie aus dem Jahr 2010 zufolge waren bis zu diesem Zeitpunkt alleine in Deutschland mehr als 48 Mio. Bundesbürger online [3]. Dieser Trend wird sich weiter fortsetzen, da moderne Geräte, wie Smart TV s, Smartphone s und sogar Neuwagen, die Möglichkeit einer Verbindung zum WWW bieten oder sogar erfordern. Ein wesentlicher Grund für den Erfolg des WWW sind Webapplikationen, die es einem Endbenutzer ermöglichen, mit dem WWW zu interagieren und Webinhalte sich dynamisch, je nach getätigter Eingabe, ändern. Im weiteren Verlauf dieser Arbeit wird eine Technologie für Java-basierende Webapplikationen das Java Servlet Application Programming Interface 3.0 vorgestellt. Das Java Servlet API 3.0 (Servlet API) ist Bestandteil der Java Enterprise Edition 6 (Java EE6) Spezifikation und Grundbaustein für darauf aufbauende Technologien wie JavaServer Pages (JSP) oder JavaServer Faces (JSF) [4] [5]. Seite 1 von 41

6 3 Allgemeine Grundlagen Im folgenden Kapitel wird eine Einführung zu den Grundlagen des World Wide Web gegeben sowie Grundbausteine einer Webapplikation beschrieben. 3.1 Das Word Wide Web Eigentlich konzipierte Berners-Lee das WWW als Informationssystem für die European Organization for Nuclear Research (CERN). Man stand damals am CERN vor dem Problem, dass die Fülle an Informationen über Teilchenbeschleuniger und Experimente nicht mehr händelbar waren und damit eine große Gefahr von Informationsverlusten bestand. Deshalb machte Berners-Lee 1989/90 einen Vorschlag zur Verwaltung von Informationen in einem verteilten Hypertext System [6]. Computer conferenc ing IBM GroupT alk Hyper Card ENQUIRE VAX/ NOT ES uucp News for example Hierarc hical sys tems for example Linked information A Propos al "Mesh" unifies describes CERNDOC for example includes describes includes C.E.R.N "Hypertext" describes This document divis ion includes describes refers to wrote g roup g roup section Hypermedia etc Comms ACM Tim Berners-Lee Abbildung 1: Entwurf des Informationssystem als Netz [6] Laut Berners-Lee [6] musste ein solches System in der Lage sein, mit der Organisation bzw. den Projekten mitzuwachsen. Dabei durfte die Art der Speicherung nicht zu einer Beschränkung für die Größe der Information werden. Deshalb erschien es für Berners-Lee sinnvoller, ein System aus vernetzten Dokumenten zu etablieren, statt ein starres hierarchisches System zu entwickeln. Heute jedoch geht der Einsatz des WWW über eine reine Informationsverwaltung und -verteilung hinaus. Wie bereits in der Einleitung angedeutet, wollen Benutzer mit dem Web interagieren. Diese Interaktion kann die Nutzung einer Suchmaschine oder die Erstellung eigner Webinhalte innerhalb eines Content Management Systems sein. Für das Beispiel einer Suchmaschine gibt der Benutzer einen Suchbegriff in das Webinterface eines Suchmaschinenanbieters ein. Abhängig vom Suchbegriff wird eine Trefferliste erzeugt und dem Benutzer auf der Website angezeigt. In diesem Beispiel arbeitet im Hintergrund ein Programm auf Seite 2 von 41

7 einem Webserver, das eine Website mit der Trefferliste erzeugt. Diese Programme werden als Webapplikation bezeichnet [7, pp ]. 3.2 Was ist eine Webapplikation? Eine Webapplikation kann wie folgt definiert werden: Eine Webapplikation ist ein Computer- Programm, welches auf einem Webserver ausgeführt wird. Der Web-Browser dient dabei als Benutzerschnittstelle, mit dessen Hilfe der Benutzer mit dem Programm kommuniziert bzw. interagiert. Der Computer des Benutzers (Client) und der Dienstanbieter (Server) sind dabei über ein Netzwerk, wie beispielsweise dem Internet oder dem Intranet, verbunden und verwenden HTTP zur Kommunikation [7, p. 455]. HTTP Internet, Intranet, TCP/IP HTTP Port 80 Client mit Browser Server mit httpd Dokumente Abbildung 2: Web-Modell [8, p. 253] Webapplikationen können einen unterschiedlichen Grad der Komplexität erreichen. Die Bandbreite geht von einfachen Foren bis zu betriebswirtschaftlichen Anwendungen, wie beispielsweise Microsoft Dynamics CRM Online. An Webapplikationen werden, im Hinblick auf ihre Funktionalität, heutzutage die gleichen Anforderungen wie an Desktop- Anwendungen gestellt [7, p. 39]. 3.3 Identifizierung und Adressierung von Ressourcen im Internet Im Internet gibt es eine Vielzahl von verschiedenen Ressourcen. Um auf diese Ressourcen zugreifen zu können, müssen alle identifizierbar und zum größten Teil auch adressierbar sein. Die bekanntesten Ressourcen sind Webseiten oder FTP-Seiten, können aber auch logische Namen sein, wie z.b. Benutzernamen für -Konten. Damit eine Identifizierung bzw. Adressierung solcher Ressourcen möglich ist, wurden einheitliche Adressierungsmuster spezifiziert, welche kurz vorgestellt werden [7, p. 40] URI, URL und URN Ein Uniform Resource Identifier (URI) dient der Identifikation einer abstrakten oder physikalischen Ressource und hat den folgenden syntaktischen Aufbau [9, p. 16]: [ ][ ] In der Tabelle 1 sind verschiedene URIs aufgeführt. Wie man sieht, haben URIs, je nach angesprochen Dienst, ein anders Schema. Tatsächlich sind eine Vielzahl URI-Schemata definiert 1 [7, p. 41]. 1 Abrufbar unter Seite 3 von 41

8 SCHEMA AUTHORITY := HOST [:PORT] PFAD QUERY FRAGMENT ftp:// ftp.is.co.za /rfc/rfc1808.txt /rfc/rfc2396.txt ldap:// [2001:db8::7] /c=gb?objectclass?one mailto: news: comp.infosystems.www.servers.unix tel: telnet:// :80 / urn: oasis:names:specification:docbook:dtd:xml:4.1.2 Tabelle 1: Übersicht verschiedener URI-Schemata [9, p. 7] Ein URI kann man, je nach ihrer Semantik, wie folgt unterscheiden: UNIFORM RESOURCE LOCATOR (URL): Die eindeutige Adresse einer physikalisch vorhandenen Ressource, wie z.b. eine Webseite. UNIFORM RESOURCE NAME (URN): Der weltweit eindeutige Name einer logisch vorhandenen Ressource, z.b. isbn: Abbildung 3: Zusammenhang URI,URL und URN HTTP-URLs HTTP-URLs sind durch das Schema http definiert und besitzen nachfolgende Syntax: [ ] [ ] HTTP-URLs sind in der HTTP-Spezifikation [10, p. 14] definiert und müssen bestimmte Eigenschaften erfüllen. So kann der Host-Teil ein DNS-Name oder eine IP-Adresse sein. Allerdings sollte der Einsatz einer IP-Adresse in HTTP-URLs, wenn möglich, vermieden werden. Auch wird festgelegt, dass bei einer fehlenden Portangabe der Standard-Port 80 verwendet wird. Ein Pfad besteht aus Segmenten, die getrennt durch "/" anzugeben sind. Seite 4 von 41

9 Nach einem "?" können Queries angegeben werden. Die Abbildung 4 zeigt eine, nach der HTTP-Spezifikation gültige, HTTP-URL. Abbildung 4: Beispiel einer gültigen HTTP-URL 3.4 Das Hypertext Transfer Protocol Als Kommunikationsprotokoll, zwischen HTTP-Client (Client) und HTTP-Server (Server), ist HTTP die Grundlage der Übertragung von Daten im WWW. Die Übertragung der Daten findet in Form eines Austausches von HTTP-Messages (Request/Response) statt. HTTP ist ein verbindungsorientiertes und zustandsloses Protokoll. Das bedeutet, dass keine der an der Verbindung beteiligten Parteien (Client/Server) irgendeine Information über den Zustand der Verbindung speichert. Zur Kommunikation nutzt HTTP ein zuverlässiges Transportprotokoll, welches in den meisten Fällen TCP 2 sein dürfte. Die Abbildung 5 zeigt, dass vor der HTTP-Kommunikation eine TCP-Verbindung aufgebaut wird, welche nach dem Nachrichtenaustausch vom Client wieder abgebaut wird. Ab der HTTP Version 1.1 (HTTP/1.1) kann durch Setzen eines Steuersignals (keep-alive) der Abbau der TCP-Verbindung verhindert werden. Dadurch ist es möglich, mehrere Abfrage-Antwort-Zyklen innerhalb einer TCP-Verbindung abzuarbeiten [8, pp ]. Clientseite Serverseite TCP-Verbindungsaufbau HTTP-Request HTTP-Response TCP-Verbindungsabbau Abbildung 5: HTTP-Kommunikation [8, p. 260] Ablauf einer HTTP-Kommunikation Der Client stellt eine Anfrage (HTTP-Request) an den Server. Der Server empfängt und bearbeitet den Request und sendet eine Antwort (HTTP-Response) an den Client zurück. Mit Absenden der Response ist der Request abgearbeitet und die Kommunikation beendet [8, p. 258]. Beide, der Request und die Response, treten stets paarweise auf und werden als HTTP-Messages bezeichnet. Die Kommunikation kann nur durch den Client eröffnet werden. Per Definition kann ein Server selbstständig keine Kommunikation beginnen, mit der Konsequenz, dass ein Server 2 TCP Transmission Control Protocol Transportprotokoll in der Schicht 4 im TCP/IP- Referenzmodell [8, p. 10] Seite 5 von 41

10 nicht selbstständig über Änderung benachrichtigen kann. Der Client muss, sofern Änderungen zu erwarten sind, den Server regelmäßig nach Änderungen fragen. Dieses regelmäßige, wiederholende (zyklische) Abfragen des Servers wird als Polling bezeichnet [7, p. 43] HTTP-Messages HTTP-Messages sind textbasierende und zeilenorientierte Nachrichten. Zur Darstellung der Zeichen wird US-ASCII verwendet und somit eine Plattformunabhängigkeit garantiert [7, p. 45]. Die beiden unterschiedlichen Ausprägungen werden in den nächsten beiden Abschnitten kurz erklärt HTTP-Request Ein HTTP-Request hat der Reihe nach folgenden Aufbau: REQUEST-LINE: Enthält Request-Methode, die Request-URI, die HTTP-Version sowie Eingabeparameter aus HTML-Formularen. REQUEST-HEADER: Eine Liste mit keinem oder mehreren HTTP-Headern mit Metainformation zur Behandlung eines Requests. Beispiel: Accept: text/html Browser unterstützt nur HTML-Dateien. LEERZEILE: Markiert das Ende der Request-Header Liste, dargestellt durch US-ASCII- Steuerzeichen <CR><LF> (carriage return + line feed). MESSAGE-BODY: Bereich für die Nutzdaten, der bei der Methode GET leer ist. Bei der Methode POST werden hier die Eingabeparameter aus HTML-Formularen übertragen. Die Abbildung 6 zeigt einen HTTP-Request mit Verwendung der Methode GET. Sie folgt genau dem zuvor skizzierten Aufbau. Die erste Zeile erhält die Request-Line, danach folgen verschiedene HTTP-Header [8, p. 259] [10, pp ]. GET /index.de.html HTTP/1.1<cr><lf> Host: User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/ Firefox/11.0<cr><lf> Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8<cr><lf> Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3<cr><lf> Accept-Encoding: gzip, deflate<cr><lf> DNT: 1<cr><lf> Connection: keep-alive<cr><lf> If-Modified-Since: Sat, 14 Apr :14:14 GMT<cr><lf> If-None-Match: "38eeb1-5d34-4bdabbf563d80"<cr><lf> Cache-Control: max-age=0<cr><lf> <cr><lf> Abbildung 6: HTTP-Request mit GET Wird statt der Methode GET die Methode POST verwendet, folgt nach der Liste von HTTP-Headern zunächst eine Leerzeile, repräsentiert durch <CR><LF>, dann der Message- Body mit Daten zur Verarbeitung im Server. Die Abbildung 7 zeigt, dass im Message-Body Daten enthalten sind. Seite 6 von 41

11 POST /fs4search/firstseek.search HTTP/1.1<cr><lf> Host: User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/ Firefox/11.0<cr><lf> Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8<cr><lf> Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3<cr><lf> Accept-Encoding: gzip, deflate<cr><lf> DNT: 1<cr><lf> Connection: keep-alive<cr><lf> Referer: Cookie: JSESSIONID=EF489DA3A9A94B01539F13DF9C55F18A<cr><lf> <cr><lf> Keyword=Mandl<cr><lf> Abbildung 7: HTTP-Request mit POST HTTP-Methoden Neben den bereits erwähnten Methoden GET und POST gibt es noch weitere Request- Methoden, die der Tabelle 2 zu entnehmen sind. Methode 3 GET Bedeutung Fordert die in dem Request-URI angegebene Ressource an. Hier bleibt der Message-Body leer. Übergabe von Parametern als Teil der URI möglich. Die Ressource wird im Message-Body der Response erwartet. POST Fordert die in dem Request-URI angegebene Ressource unter Berücksichtigung der im Message-Body enthaltenen Daten an. Die Ressource wird im Message-Body der Response erwartet. HEAD PUT DELETE Dient zum separaten Abrufen der Request-Header. Verhält sich wie GET, nur dass im Message-Body der Antwort keine Ressource enthalten ist und daher leer bleibt. Ermöglicht das Abrufen von Information einer Ressource, ohne diese komplett abrufen zu müssen. Ermöglicht das Hochladen einer Ressource unter Angabe eines Ziel-URI auf einen Webserver. Ermöglich das Löschen einer durch den Request-URI spezifizierte Ressource. TRACE OPTIONS CONNECT Sendet die Request so zurück, wie sie vom Server empfangen wurde. Nützlich, um Verbindungen zu debuggen. Ermöglicht das Abfragen der vom Server unterstützen Methoden und Eigenschaften. Wird von Proxyservern implementiert, die z.b. SSL-Tunnel unterstützen. Tabelle 2: HTTP-Methoden [10, pp ] Anmerkung: Ein Webserver muss mindestens die Methoden GET, POST und HEAD unterstützen HTTP-Request Parameter HTTP-Request Parameter dienen dazu, zusätzliche Informationen an die Webapplikation zu übermitteln. Meist handelt es sich um Daten aus HTML-Formularen. Http-Request Parameter unterscheidet man in Params-Parameter und Query-Parameter. Erstere sind Teil des Pfads und werden getrennt durch ein Semikolon oder Komma der URL angehängt. In der Praxis haben diese jedoch kaum eine Bedeutung. Der Standardfall ist der Einsatz von 3 Die HTTP-Methoden PUT, DELETE, TRACE, OPTIONS und CONNECT werden erst ab HTTP/1.1 unterstützt Seite 7 von 41

12 Query-Parametern, die bei der GET Methode getrennt durch ein "?" als Teil der URL oder bei der POST Methode im Message-Body angegeben werden [7, p. 49] (siehe auch 3.3.2). GET /search/sc.jsp?q=java HTTP/1.1<cr><lf> Request-Header Abbildung 8: HTTP-Request mit GET und Query-Parameter HTTP-Header Die HTTP-Spezifikation [10] definiert eine Reihe an möglichen HTTP-Headern. HTTP-Header enthalten Metainformation zur Steuerung einer HTTP-Message. Man unterscheidet: GENERAL-HEADER: Allgemeine Information zur Steuerung einer HTTP-Message, z.b. Connection: keep-alive bedeutet, dass die TCP-Verbindung bestehen bleiben soll. REQUEST-HEADER: Information zur Steuerung eines HTTP-Request und dürfen nur dort enthalten sein, z.b. Accept-Language: de-de,de gibt Auskunft über die vom Client unterstützten Sprachen. RESPONSE-HEADER: Information zur Steuerung eines HTTP-Response und dürfen nur dort enthalten sein, z.b. Server: Apache Information über den verwendeten Webserver. ENTITY-HEADER: Zusätzliche Information über den Inhalt des Message-Bodys, z.b. Content-Length: gibt die Länge der übertragenen Daten in Bytes an. Auf eine weiterführende Erklärung der einzelnen HTTP-Header wird an dieser Stelle verzichtet und auf die HTTP-Spezifikation verwiesen HTTP-Response Eine Antwort besteht aus den folgenden Teilen in der Reihenfolge: STATUS-LINE: Angabe der HTTP-Version, Statuscode des Requests und Reason Phrase. RESPONSE-HEADER: Wie bei einem Request sind hier die HTTP-Header aufgeführt. LEERZEILE: Markiert das Ende der HTTP-Header Liste. MESSAGE-BODY: Bereich für die Daten des Ergebnisses, in der Regel der HTML-Code. In der Abbildung 9 ist exemplarisch ein HTTP-Response zu sehen. In der ersten Zeile ist die Status-Line mit der HTTP-Version HTTP/1.1, dem Statuscode 200 sowie die Reason-Phrase OK eingetragen. Der Statuscode 200 bedeutet, dass der Request erfolgreich abgearbeitet wurde, was durch die Reason-Phrase OK unterstrichen wird. Danach folgen die bereits erwähnten HTTP-Header. Nach einem <CR><LF>, wodurch, wie bei einem Request auch, das Ende der Seite 8 von 41

13 HTTP-Header Liste anzeigt wird, folgt im Message-Body die angeforderte Ressource. In diesem Beispiel ein HTML-Code. HTTP/ OK<cr><lf> Date: Sun, 15 Apr :48:41 GMT<cr><lf> Server: Apache<cr><lf> Last-Modified: Sat, 14 Apr :10:22 GMT<cr><lf> Etag: " dd-4bdabb "<cr><lf> Accept-Ranges: bytes<cr><lf> Content-Length: 18653<cr><lf> Keep-Alive: timeout=5, max=100<cr><lf> Connection: Keep-Alive<cr><lf> Content-Type: text/html<cr><lf> <cr><lf> <html> </html> Abbildung 9: HTTP-Response mit Ergebnis HTTP-Statuscodes Statuscodes sind zum Teil in der HTTP-Spezifikation festgelegt, können aber je nach Server- Implementierungen auch individuell geregelt sein. Die Tabelle 3 zeigt einen Auszug in der HTTP-Spezifikation [10] festgelegten Statuscodes. Klasse Beispiel Bedeutung Informational 1xx 100 Continue Der Einleitungsteil des Requests ist beim Server angekommen und die Übertragung kann fortgesetzt werden. Successful 2xx 200 OK Der Request wurde erfolgreich abgearbeitet. Redirection 3xx 202 Accepted Der Request wurde akzeptiert, konnte aber noch nicht vollständig abgearbeitet werden. 301 Moved Permanently Die angeforderte Ressource hat einen neuen URI und kann über die zurückgesendeten URIs abgerufen werden. Client Error 4xx 404 Not Found Die angeforderte Ressource ist auf dem Server nicht vorhanden. Server Error 5xx 501 Not Implemented Der Server unterstützt die erforderliche Methode zu Bearbeitung des Requests nicht. Tabelle 3: HTTP-Statuscodes [10, pp ] 3.5 Cookies und Session Cookies Wie bereits im Abschnitt 3.4 erwähnt, ist HTTP zustandslos und speichert keine Zustandsdaten über die HTTP-Verbindung. Damit das Halten von Zustandsdaten über mehrere Anfrage-Abfrage-Zyklen möglich ist, wurden HTTP-Cookies (Cookies) eingeführt und zunächst in der RFC 2109 HTTP State Management Mechanism [11] spezifiziert. Mittlerweile ist die RFC 6265 [12] aus dem Jahr 2011 aktuell. Cookies sind kleine Textdateien mit clientspezifischen Informationen über den Zustand. Diese werden während einer HTTP-Kommunikation zwischen Webbrowser (HTTP-Client) und Webserver (HTTP-Server) ausgetauscht. Verwaltet wird ein Cookie vom Webbrowser, der sie persistent speichert und nach vorgegebenen Regeln wieder löscht [7, pp ]. Seite 9 von 41

14 Erzeugt wird ein Cookie in der Regel von einer Webapplikation, die auf einem Webserver ausgeführt wird. Dazu leitet der Webserver den Request an die Webapplikation weiter, um die Anfrage zu bedienen. Zunächst wird durch die Webapplikation geprüft, ob bereits ein Cookie vorhanden ist. Sollte kein Cookie existieren oder es sollen die Informationen eines Cookies geändert werden, wird ein neues Cookie erzeugt und in einem Header-Feld der Response zurück an den Client gesendet. Dieser speichert das Cookie zugeordnet zur aufgerufenen URL ab und sendet es von nun an mit jedem Request an diese URL mit. Die Abbildung 10 zeigt grob den Ablauf einer HTTP-Kommunikation mit Cookie. Web-Client Web-Server TCP-Verbindungsaufbau Web-App HTTP-Request an URL x Prüfen auf Cookie HTTP-Response Set-Cookie: URL x Kein Cookie Cookie erzeugen Cookie vorhanden Cookie Daten ändern Cookie speichern HTTP-Request an URL x Cookie: URL x Keine Änderung nötig Response senden Abbildung 10: HTTP-Kommunikation mit Austausch von Cookies Cookies können auch über clientseitige Skripte erzeugt werden. Dies könnte beispielsweise eine JavaScript Funktion sein, die Spracheinstellungen des Benutzers in einem Cookie speichert. Der Ersteller eines Cookies kann angeben, wie lange ein Cookie existieren soll, das heißt, wie lange es gespeichert bleibt. Wird keine Lebensdauer angegeben, wird das Cookie mit dem Schließen des Webbrowsers gelöscht. Der Browserbenutzer bemerkt in der Regel nichts von diesen Vorgängen. Weder das Speichern, noch das Zurücksenden eines Cookies an den Server, wird angezeigt. Heute gängige Browser bieten meist die Möglichkeit, die Behandlung von Cookies explizit einzustellen [7, p. 187] Aufbau eines Cookies Ein Cookie hat einen Namen, der aus einem Namen-Wert-Paar 4 aus alphanumerischen US- ASCII Zeichen besteht. Darüber hinaus können Cookies weitere Werte aus US-ASCII Zeichen enthalten, wie z.b. eine SessionID oder Angaben zur Lebensdauer [13, p. 73] Session mit Cookies Neben der Möglichkeit, benutzerdefinierte Einstellungen einer Webseite zu speichern, können mittels Cookies Sitzungen (Sessions) realisiert werden. Dazu wird in einem Cookie eine, von einer Webapplikation erzeugte, SessionID eingetragen und dem Client über die 4 Wird auch als Token bezeichnet. Seite 10 von 41

15 Response gesendet. Der Client sendet nun mit jedem Request, der an diese URL gerichtet ist, dieses Cookie zur Identifikation mit. Solche Cookies werden auch als Session-Cookies bezeichnet und existieren nur so lange, wie die Session besteht, und sind daher temporär [7, p. 202]. Unter einer Session versteht man logisch zusammenhängende Aktionen, die über einen definierten Zeitraum im selben Kontext getätigt werden. Die SessionID ist eine generierte eindeutige Nummer, die zur Identifikation einer Session dient. In Webapplikationen ist dies von elementarer Bedeutung, da mehrere Clients gleichzeitig Aktionen ausführen können. Diese Aktionen werden über HTTP-Requests an die Webapplikation übermittelt. Deshalb ist es wichtig, dass jeder Request, der dazugehörigen Session zugeordnet wird [7, p. 203]. In einer Session könnte z.b. die Warenkorbfunktionalität eines Online-Shops verwaltet werden. Sollten nun Aktionen, wie das Hinzufügen eines neuen Artikels, nicht der richtigen Session zugeordnet werden, wäre es möglich, dass ein Benutzer einen Artikel bestellt, den er eigentlich nicht wollte. HTTP-Client HTTP-Server Login POST username=thomas password=a_passwd Response Set-Cookie: SESSIONID=623AC7642 Login successful? 1. create sessionid 2. return sessionid in cookie 3. store sessionid in database SESSION ID sessionid username createdate expiredate lastaccessdate Datenbank GET Cookie: SESSIONID=623AC7642 Response Content für Thomas Lookup SessionID 1. session match a username? 2. session still valid Abbildung 11: Erstellen einer Sitzung zur Identifikation eines Benutzers [14] Eine Session beginnt in der Regel mit dem Aufruf der Webapplikation 5 durch einen Client und endet nach Abarbeitung der letzten Aktion. Sollte ein Client über einen längeren Zeitraum keine Aktionen mehr durchführen, sollte sichergestellt sein, dass die Session nach einem definierten Zeitraum selbstständig beendet wird. Dies wird als Timeout bezeichnet. Ein Timeout wird aus Performanz- sowie Sicherheitsgründen festgelegt. Eine Webapplikation würde nicht bemerken, dass z.b. ein angemeldeter Benutzer die Webapplikation nicht mehr 5 Diese Web-App könnte z.b. ein Online-Shop oder eine Online-Banking Anwendung sein. Seite 11 von 41

16 nutzt und die Session bliebe bestehen. Die Gründe bezüglich der Sicherheit liegen dabei auf der Hand. Durch eine nicht geschlossene Session könnten sich Unbefugte, Zugriff zu dieser Webapplikation verschaffen. So wird z.b. im Online-Banking eine Session in der Regel nach min beendet [7, p. 206]. Die Gründe der Performanz sind nicht so deutlich. Zunächst muss man Sessions als Objekte verstehen, welche im Kontext einer Webapplikation existieren. Neben dem Halten der Benutzerdaten, dienen Sessions oftmals auch als Zwischenspeicher für Anwendungsdaten, z.b. Daten eines Warenkorbs. Diese Session-Objekte wachsen mit der Dauer der Session und der Menge der gespeicherten Anwendungsdaten. Bei einem Benutzer macht dies noch nicht viel aus. Bei einer großen Anzahl von angemeldeten Benutzern kann dies zu einem großen Speicherbedarf führen, worunter zwangsläufig die Performanz leidet [7, pp ] [15, pp ] Mögliche Probleme Wie bereits im Abschnitt beschrieben, können Benutzer ihren Webbrowser so einstellen, dass Cookies prinzipiell abgelehnt werden. Das muss ein Entwickler bei der Erstellung einer Webapplikation berücksichtigen. Eine Session-Verwaltung, die ausschließlich mittels Cookie realisiert wird, würde bei Ablehnung des Cookies die Session verlieren [13, pp ]. Konzepte, die dennoch das Halten von Session-Informationen ohne Cookie ermöglichen sind: HIDDEN-FIELDS Die SessionID wird in einem nicht sichtbaren Feld innerhalb des HTML-Codes eingebunden. URL-REWRITING Dem URL wird die SessionID als HTTP-Request Parameter angefügt. SECURE SOCKET LAYER (SSL) Während dem Aufbau der TCP-Verbindung wird automatisch ein eindeutiger Identifikator erzeugt, der auch für die Session-Verwaltung verwendet werden kann. In der Praxis hat sich eine Kombination aus Session-Cookie und URL-Rewriting etabliert. Allerdings gibt es hier ein Problem. Die Webapplikation erhält keine Informationen darüber, ob der Web-Browser Cookies akzeptiert. Deswegen wird bei der Erstellung der Session zunächst beides angewandt. Zum einen wird die SessionID in einem Cookie, zum anderen als URL-Parameter übermittelt. Ist beim darauffolgenden Request das Session-Cookie im HTTP-Request-Header enthalten, werden für den weiteren Verlauf nur noch Session-Cookies verwendet. Im anderen Fall wird URL-Rewriting eingesetzt [13, p. 78] [16, p. 238]. Seite 12 von 41

17 3.6 Web-Techniken Web-Techniken können in clientseitige und serverseitige Web-Techniken unterschieden werden. Clientseitige Web-Techniken werden im Webbrowser verarbeitet oder ausgeführt. Darunter fallen Sprachen, wie HTML, XHTML, XML, CSS, HTML5 und JavaScript. Aber auch Java selbst ist als Java-Applet denkbar. Für Java-Applets muss allerdings eine Java Virtual Machine (JVM) auf dem Client vorhanden sein [7, pp. 5-6]. Client mit Web-Browser Web-App HTTP-Request Cleintseitige Techniken: HTML, XHTML, XML, HTML5, JavaScript etc. HTTP-Response Webserver Serverseitige Techniken: Servlets, JSP, JSF Abbildung 12:Abgrenzung clientseitige und serverseitige Web-Techniken [7, p. 6] Serverseitige Web-Techniken bezeichnen Komponenten, die auf einem Webserver verarbeitet oder ausgeführt werden. Für serverseitige Web-Techniken gibt es eine Vielzahl von Techniken. Im Java-Umfeld sind es Technologien wie Java Servlets, JavaServer Pages oder JavaServer Faces, welche es ermöglichen, umfangreiche und leistungsfähige Webapplikationen zu entwickeln. Seite 13 von 41

18 4 Grundbausteine einer Webapplikation mit dem Java Servlet API Nachdem im Kapitel 3 Grundlagen einer Webapplikation erläutert wurden, behandelt dieses Kapitel die Grundbausteine, die das Servlet API 6 zur Erstellung von Webapplikationen bietet. 4.1 Einführung Die Geschichte der Java Servlets (Servlet) reicht zurück bis in das Jahr James Gosling experimentierte damals an einem Java-basierten Webserver, womit er auch die Grundlagen für Servlets legte. Die erste Version das Java Servlet API 2.1 wurde allerdings erst 1999 zur Verfügung gestellt [17, p. 173]. Seit Dezember 2009 ist diese in der Version 3.0 verfügbar. Die Abbildung 13 zeigt die Kernkomponenten der API. <<interface>> ServletConfig <<interface>> ServletContext <<interface>> RequestDispatcher <<abstract>> GenericServlet <<interface>> Servlet <<abstract>> HTTPServlet <<interface>> ServletRequest <<interface>> ServletResponse <<interface>> HTTPServletRequest <<interface>> HTTPServletResponse <<interface>> HTTPSession n Cookie Abbildung 13: Kernkomponenten des Java Servlet API [18] Unterschied zu anderen Technologien In der Funktionsweise kann man ein Servlet mit Common Gateway Interface (CGI) Programmen (CGI-Scripte) vergleichen. CGI-Scripte sind aber im Gegensatz zu Servlets eigenständige Programme. Bei CGI wird für jeden eingehenden HTTP-Request ein eigener Prozess gestartet. Das hat den Vorteil, dass der Anwendungsprozess von Serverprozess getrennt ist und CGI-Skripte so in fast jeder beliebigen Sprache geschrieben sein können. Ebenfalls ist dadurch eine gewisse Absturzsicherheit des Webservers gewährleistet, da ein Fehler im CGI-Skript nicht zu einem Absturz des Webservers führt [2, p. 6]. Allerdings hat das Erstellen neuer Prozesse einen hohen Ressourcenverbrauch zur Folge und belasteten das Betriebssystem durch die notwendigen Prozesswechsel. Hier haben Servlets den Vorteil, dass sie als leichtgewichtige Threads innerhalb eines Prozesses ablaufen und dadurch weniger Overhead beim Prozesswechsel erzeugt wird. Bei Servlets läuft auf dem Webserver nur der Prozess für den Webcontainer [13, p. 81]. Dieser unterschiedliche Ansatz beim Prozessmodel macht Servlets wesentlich performanter bei niedrigerem Ressourcenverbrauch. Das von vielen Webservern unterstützte Servlet API sowie die Plattformunabhängigkeit sind weitere Vorteile von Servlets. [4, p. 3]. 6 Application Programming Interface - Programmierschnittstelle Seite 14 von 41

19 Client 1 HTTP-Request HTTP-Response Webserver Client 1 HTTP-Request HTTP-Response Webserver Prozess 1 Client 2 HTTP-Request HTTP-Response HTTP-Request HTTP-Response Servlet-Instanz Client 2 HTTP-Request HTTP-Response HTTP-Request HTTP-Response Prozess 2 Prozess n Client n Verarbeitung nebenläufiger Anfragen bei Servlets Client n Verarbeitung nebenläufiger Anfragen bei CGI Abbildung 14: Vergleich von Servlet und CGI bei der Verarbeitung von HTTP-Requests [13, pp ] Beziehung zur Java EE 6 Das Servlet API ist ein Bestandteil der Java EE 6 Spezifikation und Teil des dazu gehörigen Java Development Kits (JDK). Die Tabelle 4 zeigt die Pakete des Servlet API. Packages javax.servlet javax.servlet.annotation javax.servlet.descriptor javax.servlet.http Tabelle 4: Pakete des Servlet API [19] Das javax.servlet Package beinhaltet Klassen und Interfaces, die als Zusicherungen zwischen Servlet und Ablaufumgebung zu verstehen sind. Mit diesen Klassen und Interfaces können allgemeine Servlets erstellt werden Annotationen erlauben es, Servlets, Filter und Listener zu deklarieren und können auch als Metadaten verstanden werden. Erlaubt einen programmatischen Zugriff auf Informationen aus der web.xml und web-fragment.xml. Das javax.servlet.http beinhaltet Klassen und Interfaces, die als Zusicherungen zwischen Servlet und Ablaufumgebung verstanden werden und HTTP nutzen. Mit diesen Interfaces können HTTP spezifische Servlets erstellt werden Was ist ein Servlet? Ein Servlet ist eine Java-basierende Web-Komponente, die durch eine spezielle Ablaufumgebung verwaltet und ausgeführt wird. Diese Ablaufumgebung wird als Servlet- Container oder Webcontainer bezeichnet. Servlets dienen dazu, Anfragen eines Clients zu verarbeiten und dynamisch Antworten zu generieren. Wie alle Java-basierenden Technologien wird aus Servlet-Klassen plattformunabhängiger Bytecode erzeugt, welcher dynamisch zur Laufzeit in einen Webserver geladen und ausgeführt werden kann. Dabei werden an den Webserver nur zwei Anforderungen gestellt: Er muss auf Java basieren und Servlets unterstützen, das heißt, einen Servlet-Container zur Verfügung stellen [4, p. 1]. Eine Webapplikation besteht normalerweise aus einer Reihe an Servlets, JavaBean und sonstigen Ressourcen, z.b. Bilder, HTML-Dokumente, und werden in der Regel in einem Web- Application-Archive (war) zusammengefasst [13, p. 85] Was ist ein Servlet Container? Der Servlet-Container ist die Ablaufumgebung für Servlets und hat die Aufgabe, den Lebenszyklus eines Servlets zu steuern und zu überwachen. Ebenso leitet er die eingehenden Anfragen an das betreffende Servlet weiter und sendet die, durch das Servlet generierte, Antwort an den Client zurück [16, pp ]. Seite 15 von 41

20 Ein Servlet-Container kann Teil eines Application-Servers sein, der, wie ein Servlet-Container auch, eine spezielle Ablaufumgebung für Java Anwendungen ist, jedoch ein größeres Einsatzspektrum besitzt [13, p. 85]. Neben einer Java Virtual Maschine (JVM), stellt der Web-Container APIs der Java Standard Edition (Java SE) sowie weitere APIs, z.b. das Java Transaction API (JTA) oder das Java Naming and Directory Interface (JNDI), zur Verfügung [13, p. 85]. 4.2 Das Interface Servlet Das Interface javax.servlet.servlet ist die zentrale Schnittstelle des Servlet API. In diesem Interface sind Methoden 7 zur Steuerung des Lebenszyklus eines Servlets deklariert. Die Tabelle 5 gibt eine Übersicht aller Methoden des Interfaces. Method Summary ServletConfig String Tabelle 5: Methoden des Interface Servlet [19] destroy() Wird durch den Servlet Container aufgerufen, um ein Servlet zu beenden. getservletconfig() Gibt ein ServletConfig Objekt zurück, welches die Initialisierungs- und Startparameter enthält. getservletinfo() Liefert Information über das Servlet, wie Autor, Version und Copyright init(servletconfig config) Wird zum Initialisieren eines Servlets durch den ServletContainer aufgerufen. service(servletrequest req, ServletResponse res) Wird bei einem eingehenden Request durch den ServletContainer aufgerufen init()-methode Nachdem eine Instanz des Servlets erzeugt wurde, wird durch den Servlet-Container die Methode init(servletconfig config) aufgerufen, um notwendige Initialisierungsschritte auszuführen. Hierbei enthält das übergebene Objekt javax.servlet.servletconfig config die Konfiguration- und Initialisierungsparameter des Servlets. Nur wenn diese Methode erfolgreich ausgeführt wurde, kann ein Servlet eingehende Requests verarbeiten [4, p. 8] [13, p. 91] service()-methode An die Methode service(servletrequest req, ServletResponse res) leitet der Servlet- Container, nach der erfolgreichen Initialisierung, alle Requests eines Clients als ServletRequest Objekte weiter, um diese dort zu verarbeiten. Darüber hinaus übergibt der Servlet-Container ein ServletResponse Objekt, welches die Antwort aufnimmt. Zu beachten ist, dass diese Methode durch mehrere Threads ausgeführt werden kann und Vorkehrungen getroffen werden müssen, die konkurrierenden Zugriffe abzusichern. Um sicher konkurrierende Zugriffe zu gewährleisten, schlägt die Servlet API Spezifikation zwei Möglichkeiten vor. Zum einen können mittels syncronized Methoden oder Blöcke threadsicher ausgeführt werden. Zum anderen kann das Interface javax.servlet.singlethreadmodel verwendet werden. Dieses Interface stellt sicher, dass 7 In dem Servlet API auch als life-cycle-methods bezeichnet Seite 16 von 41

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen Servlets als Controller einer MVC Web Architektur Prof. Dr. Nikolaus Wulff HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation,

Mehr

Java Servlet Technology

Java Servlet Technology 0 Java Servlet Technology Seminar Medientechnik Christina Eicher 30. Juni 2003 1 Übersicht: 1. Was ist ein Servlet? 2. Cookies und Sessions 3. Die Servlet-Klassen und das Servlet-Interface 4. Der Servlet-Container

Mehr

Java - Webapplikationen

Java - Webapplikationen Java - Webapplikationen Bestandteile (HTTP,, JSP) Aufbau (Model View Controller) Datenverwaltung (Java Beans, Sessions) Entwicklung (Projektstruktur, Sysdeoplugin für Eclipse) 17. Januar 2006 Jan Hatje

Mehr

Fortgeschrittene Servlet- Techniken. Ralf Gitzel ralf_gitzel@hotmail.de

Fortgeschrittene Servlet- Techniken. Ralf Gitzel ralf_gitzel@hotmail.de Fortgeschrittene Servlet- Techniken Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Servlet Initialisierung Attribute und Gültigkeitsbereiche Sessions

Mehr

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

Programmieren II. Wie kommen Daten von einem Webserver? Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011 Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 23 2 / 23 Wie kommen Daten von einem Webserver? In der Praxis existieren verschiedene Wege, wie ein Server einem Client zu

Mehr

Java zur Realisierung von Internetanwendungen

Java zur Realisierung von Internetanwendungen Java zur Realisierung von Internetanwendungen Elementare Web-Programmierung Prof. Dr. Bernhard Schiefer HTTP Web-Browser Web-Browser GET http://www.zw.fh-kl.de/beispiel.htm beispiel

Mehr

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

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 Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

Mehr

Rechnernetze Übung 12

Rechnernetze Übung 12 Rechnernetze Übung 12 Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juli 2011 Sie kennen sicherlich sogenannte Web-Mailer, also WWW-Oberflächen über die Sie Emails lesen und vielleicht

Mehr

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

Programmieren II. Remote-Programmierung. www.kit.edu. Institut für Angewandte Informatik Programmieren II Remote-Programmierung KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Remote-Programmierung Remote Method Invocation

Mehr

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

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter Remote- und Server-Programmierung Dr. Wolfgang Süß Thorsten Schlachter Remote Method Invocation (RMI) Servlets WebServices 2 Remote Method Invocation (RMI) Das Remote Method Invocation (RMI)-Framework

Mehr

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling Open-Xchange Authentication & Sessionhandling Version Date Author Changes 1.0 28.08.2006 Stephan Martin Initiale Version 1.1 29.08.2006 Marcus Klein Details Authentication via JSON 1.2 04.09.2006 Stephan

Mehr

Datenbank-basierte Webserver

Datenbank-basierte Webserver Datenbank-basierte Webserver Datenbank-Funktion steht im Vordergrund Web-Schnittstelle für Eingabe, Wartung oder Ausgabe von Daten Datenbank läuft im Hintergrund und liefert Daten für bestimmte Seiten

Mehr

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2)

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2) 14. URIs Uniform Resource Identifier 14-1 14. URIs Uniform Resource Identifier 14-2 Motivation Das WWW ist ein Hypermedia System. Es enthält: Resourcen (Multimedia Dokumente) Verweise (Links) zwischen

Mehr

MCRServlet Table of contents

MCRServlet Table of contents Table of contents 1 Das Zusammenspiel der Servlets mit dem MCRServlet... 2 1 Das Zusammenspiel der Servlets mit dem MCRServlet Als übergeordnetes Servlet mit einigen grundlegenden Funktionalitäten dient

Mehr

Bemerkung: Jede Ressource sollte über einen. Ressource A. Ressource. eindeutigen Namen verfügen. Ressource F. Ressource. Ressource E.

Bemerkung: Jede Ressource sollte über einen. Ressource A. Ressource. eindeutigen Namen verfügen. Ressource F. Ressource. Ressource E. 10 Hypertext Transfer Protocol 10.1 Hypermedia 10.2 Universal Resource Identifier 10.3 Nachrichten 10.4 Proxy 10.5 Cache 10.6 Authentifizierung 10.7 S Hypermedia: A D C B E F Bemerkung: Jede sollte über

Mehr

e-commerce Running Tomcat

e-commerce Running Tomcat 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)

Mehr

Proseminar: Website-Management-Systeme

Proseminar: Website-Management-Systeme Proseminar: Website-Management-Systeme Thema: Web: Apache/Roxen von Oliver Roeschke email: o_roesch@informatik.uni-kl.de Gliederung: 1.) kurze Einleitung 2.) Begriffsklärung 3.) Was ist ein Web? 4.) das

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

JSP und Servlet Programmierung

JSP und Servlet Programmierung Seminarunterlage Version: 5.02 Copyright Version 5.02 vom 1. März 2013 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

Anwendungsprotokolle: HTTP, POP, SMTP

Anwendungsprotokolle: HTTP, POP, SMTP Anwendungsprotokolle: HTTP, POP, SMTP TCP? UDP? Socket? eingesetzt, um Webseiten zu übertragen Zustandslos Nutzt TCP Client schickt Anfrage ( HTTP-Request ) an Server, Server schickt daraufhin Antwort

Mehr

Web- Applikationen. in Java-Web

Web- Applikationen. in Java-Web Einführung in Java-Web Web- Applikationen Frank Huber Humboldt-Universität zu Berlin Allgemeines Java: Programmierung ist Programmierung nach Konvention Insbesondere bei Web-Applikationen wurde eine API

Mehr

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

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS Universität zu Lübeck 28.05.2003 Praktikum Datenbanksysteme Ho Ngoc Duc IFIS Universität zu Lübeck 28.05.2003 Nullwerte und Primitive Typen Wenn parent==null, was wird in der Datenbank gespeichert? Wenn man aus der DB liest, wie kann

Mehr

Web-Engineering. 1 / Einführung

Web-Engineering. 1 / Einführung Web-Engineering 1 / Einführung World Wide Web Ressourcen, z.b. Dokumente, identifizierbar bereitstellen Hypertexte : enthalten Verweise auf Ressourcen Multimediale Komponenten (Ton/Bild/Video) einbeziehen

Mehr

Vorlesung SS 2001: Sicherheit in offenen Netzen

Vorlesung SS 2001: Sicherheit in offenen Netzen Vorlesung SS 2001: Sicherheit in offenen Netzen 2.10 World Wide Web - WWW Prof. Dr. Christoph Meinel Informatik, Universität Trier & Institut für Telematik, Trier Prof. Dr. sc. nat. Christoph Meinel, Bahnhofstraße

Mehr

y Hypertext braucht Ressourcen-Identifikation y Unterschied zwischen Link und Identifier

y Hypertext braucht Ressourcen-Identifikation y Unterschied zwischen Link und Identifier +\SHUWH[W7UDQVIHU3URWRFRO +773 (ULN:LOGH 7,.² (7+= ULFK 6RPPHUVHPHVWHU hehuvlfkw y Hypertext braucht Ressourcen-Identifikation y Unterschied zwischen Link und Identifier y Universal Resource Identifier

Mehr

Web-Konzepte für das Internet der Dinge Ein Überblick

Web-Konzepte für das Internet der Dinge Ein Überblick Web-Konzepte für das Internet der Dinge Ein Überblick Samuel Wieland sawielan@student.ethz.ch ETH Zürich Seminar Das Internet der Dinge Historisches Tim Berners-Lee Erster Web-Server Bildquelle: Wikimedia

Mehr

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

J a v a S e r v l e t s 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?

Mehr

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST 2. Interaktive Web Seiten GET und POST Die Übertragungsmethoden GET und POST sind im http Protokoll definiert: POST: gibt an, dass sich weitere Daten im Körper der übertragenen Nachricht befinden: z.b.

Mehr

Grundlagen der WWW- und Dokumenten-Architektur. Robert Strzebkowski TFH Berlin

Grundlagen der WWW- und Dokumenten-Architektur. Robert Strzebkowski TFH Berlin Grundlagen der WWW- und Dokumenten-Architektur Grundlagen der WWW- und Dokumenten-Architektur 1. Die Grundbestandteile vom World Wide Web 2. Das HTTP-Protokoll und 3. Was sind 'URL' und 'URI'? 4. Dynamische

Mehr

Theoretische Aspekte

Theoretische Aspekte Webserver mit Win32 API Datum: 04.02.03 Autor: Michael Hielscher Homepage: www.genesis-x7.de Theoretische Aspekte Aufbau eines Webservers Als erstes sollte man im Abschnitt Multithreaded SocketServer nachlesen

Mehr

Web-Programmierung (WPR)

Web-Programmierung (WPR) 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

Mehr

!"# $ % Internet Protokolle: HTTP 1/38

!# $ % Internet Protokolle: HTTP 1/38 !"# $ % Internet Protokolle: HTTP 1/38 1 Themenübersicht Schichtenmodell Gopher /FTP Statistik URL Einleitung Anwendungsablauf Beispiel mit Telnet Request, Response Anfragemethoden header Negotiation Proxyserver

Mehr

4. Servlets Ein kleiner Einstieg. Kurze Java Historie. Erinnerung: Internet Anwendungen. Konzept eines Seitenaufrufs

4. Servlets Ein kleiner Einstieg. Kurze Java Historie. Erinnerung: Internet Anwendungen. Konzept eines Seitenaufrufs 4. s Ein kleiner Einstieg Erinnerung: HTTP und HTML Idee von Web n und Containern Erstellung einfacher s (zunächst software technisch übelst unstrukturiert) Literatur: B. Basham, K. Sierra, B. Bates, Head

Mehr

Call Button / HTTP - Systembeschreibung

Call Button / HTTP - Systembeschreibung Call Button / HTTP - Systembeschreibung Detlef Reil, 14.03.2004, zu Call Button, Version 040127, V1.50 Beta! Software System Für die Kommunikation zwischen den Call Buttons und der Applikation war bisher

Mehr

Themen. Anwendungsschicht DNS HTTP. Stefan Szalowski Rechnernetze Anwendungsschicht

Themen. Anwendungsschicht DNS HTTP. Stefan Szalowski Rechnernetze Anwendungsschicht Themen Anwendungsschicht DNS HTTP Anwendungsschicht OSI-Schicht 7, TCP/IP-Schicht 4 Dienste für den Nutzer/Anwender Unabhängig von den niederen Schichten Verschiedene Dienste bzw. Services DNS HTTP FTP,

Mehr

Java 2, Enterprise Edition Einführung und Überblick

Java 2, Enterprise Edition Einführung und Überblick Universität aiserslautern AG Datenbanken und Informationssysteme Seminar Datenbank-Aspekte des E-Commerce Java 2, Enterprise Edition Einführung und Überblick m_husema@informatik.uni-kl.de Vortragsinhalte

Mehr

Herzlich willkommen im Modul Informatik Grundlagen

Herzlich willkommen im Modul Informatik Grundlagen Herbstsemester 2010/2011 Herzlich willkommen im Modul Informatik Grundlagen Wirtschaftsingenieurwesen: 1. Semester Dozent: Martin Hüsler Fachhochschule Nordwestschweiz FHNW / Martin Hüsler 1 Ablauf: 1.

Mehr

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Entwicklung von Web-Anwendungen auf JAVA EE Basis Entwicklung von Web-Anwendungen auf JAVA EE Basis Java Enterprise Edition - Überblick Prof. Dr. Bernhard Schiefer Inhalt der Veranstaltung Überblick Java EE JDBC, JPA, JNDI Servlets, Java Server Pages

Mehr

Arbeiten im Datennetz der Universität Regensburg

Arbeiten im Datennetz der Universität Regensburg Wiwi-Workshop Uni Regensburg April 2002 Arbeiten im Datennetz der Universität Regensburg - Einführung in HTML, Teil II Arbeiten mit AOLPress - Dr. Wirtschaftswissenschaftliche Fakultät Universität Regensburg

Mehr

Konfigurieren eines Webservers

Konfigurieren eines Webservers Unterrichtseinheit 12: Konfigurieren eines Webservers Erleichterung der Organisation und des Verwaltens von Webinhalten im Intranet und Internet. Übersicht über IIS: Der IIS-Dienst arbeitet mit folgenden

Mehr

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

Inhalt: Konfiguration: web.xml ; server.xml Workflow: Weiterleitung von Requests Lektion II-IV Lektion V-VI Servlet II Inhalt: Konfiguration: web.xml ; server.xml Workflow: Weiterleitung von Requests Lektion II-IV Lektion V-VI 3-1 1. Grundlagen 2. Servlets 3. JSP 4 1.1. JAR Files 4 1.2. TCP/IP, Sockels 4 1.3.

Mehr

Web Grundlagen zum Spidering

Web Grundlagen zum Spidering May 22, 2009 Outline Adressierung 1 Adressierung 2 3 4 Uniform Resource Locator URL Jede Seite im Internet wird eindeutig über eine URL identiziert, z.b. http://www.christianherta.de/informationretrieval/index.html

Mehr

Client/Server-Systeme

Client/Server-Systeme Frühjahrsemester 2011 CS104 Programmieren II / CS108 Programmier-Projekt Java-Projekt Kapitel 3: /Server-Architekturen H. Schuldt /Server-Systeme Ein zweischichtiges /Server-System ist die einfachste Variante

Mehr

TCP/UDP. Transport Layer

TCP/UDP. Transport Layer TCP/UDP Transport Layer Lernziele 1. Wozu dient die Transportschicht? 2. Was passiert in der Transportschicht? 3. Was sind die wichtigsten Protkolle der Transportschicht? 4. Wofür wird TCP eingesetzt?

Mehr

Inhaltsverzeichnis. Zusammenfassung Wydler

Inhaltsverzeichnis. Zusammenfassung Wydler Inhaltsverzeichnis 1 Multitier Anwendungen... 2 2 J2EE Komponenten... 2 2.1 J2EE Design Patterns for Performance... 2 2.1.1 Design Patterns... 2 2.1.2 Session Façade... 2 2.1.3 Data Transfer Object (Value

Mehr

Session Management und Cookies

Session Management und Cookies LMU - LFE Medieninformatik Blockvorlesung Web-Technologien Wintersemester 2005/2006 Session Management und Cookies Max Tafelmayer 1 Motivation HTTP ist ein zustandsloses Protokoll Je Seitenaufruf muss

Mehr

Sicheres HTTP. 8. Juni 2004. Proseminar Electronic Commerce und digitale Unterschriften

Sicheres HTTP. 8. Juni 2004. Proseminar Electronic Commerce und digitale Unterschriften Sicheres HTTP 8. Juni 2004 Proseminar Electronic Commerce und digitale Unterschriften Sicheres HTTP HTTP über SSL = sicheres HTTP Überblick HTTP: Protokoll zur Datenübertragung im Internet Klartextprotokoll

Mehr

Python CGI-Skripte erstellen

Python CGI-Skripte erstellen Python CGI-Skripte erstellen CGI (Common Gateway Interface)... ist eine Schnittstelle, um Scripte im Web bereitzustellen. ist eine Schnittstelle zwischen einem HTTP-Server und ausführbaren Programmen.

Mehr

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans Java Enterprise Edition - Überblick Was ist J2EE Java EE? Zunächst mal: Eine Menge von Spezifikationen und Regeln. April 1997: SUN initiiert die Entwicklung

Mehr

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

Web-Technologien und Java-Web-Anwendungen. der große Überblick Web-Technologien und Java-Web-Anwendungen der große Überblick Literaturtipp: Heiko Wöhr Webtechnologien Konzepte Programmiermodelle Architekturen dpunkt Heidelberg 2004 (c) schmiedecke 07 SE2-2-Java-Web-Anwendungen

Mehr

REST Grundlagen. Seminar Aktuelle Software-Engineering-Praktiken für das World Wide Web. Olga Liskin

REST Grundlagen. Seminar Aktuelle Software-Engineering-Praktiken für das World Wide Web. Olga Liskin <olga.liskin@gmail.com> REST Grundlagen Seminar Aktuelle Software-Engineering-Praktiken für das World Wide Web Olga Liskin Übersicht Motivation, Einführung Architekturstil REST RESTful Webservices Patterns,

Mehr

2 Grundlagen von Webanwendungen

2 Grundlagen von Webanwendungen 7 Verschiedene Technologien sind notwendig, damit leistungsfähige Webanwendungen entstehen können. In den letzten Jahren haben sich, teilweise unabhängig voneinander, in den einzelnen Bereichen ausgereifte

Mehr

Glossar. SVG-Grafiken in Bitmap-Grafikformate. Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten,

Glossar. SVG-Grafiken in Bitmap-Grafikformate. Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten, Glossar Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten, Methoden und/oder Eigenschaften, die eine bestimmte Berechnung ausführt, eine Eigenschaft ändert oder eine Methode

Mehr

Einführung. Internet vs. WWW

Einführung. Internet vs. WWW Einführung Bernhard Plattner 1-1 Internet vs. WWW "the Internet is the entirety of all computers which are interconnected (using various physical networking technologies) and employ the Internet protocol

Mehr

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de EJB Beispiel JEE Vorlesung 10 Ralf Gitzel ralf_gitzel@hotmail.de 1 Stundenkonzept Gemeinsame Übung Stoff der letzten Stunde wird gemeinsam in einem Beispiel umgesetzt Details werden nochmals erklärt bzw.

Mehr

Inhaltsverzeichnis. Vorwort... Einleitung... Einführung... 1

Inhaltsverzeichnis. Vorwort... Einleitung... Einführung... 1 Vorwort... Einleitung... V VII Einführung... 1 1 Grundlagen... 7 1.1 Dokumentmodelle... 7 1.1.1 Multimedia... 8 1.1.2 Hypermedia... 9 1.1.3 Verteilung... 11 1.2 Geschichte des WWW... 13 1.2.1 Struktur...

Mehr

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

ARCHITEKTUR VON INFORMATIONSSYSTEMEN ARCHITEKTUR VON INFORMATIONSSYSTEMEN File Transfer Protocol Einleitung Das World Wide Web war ja ursprünglich als verteiltes Dokumentenverwaltungssystem für die akademische Welt gedacht. Das Protokoll

Mehr

Sessions mit PHP. Annabell Langs 2004. Sessions in PHP - Annabell Langs 1

Sessions mit PHP. Annabell Langs 2004. Sessions in PHP - Annabell Langs 1 Sessions mit PHP Annabell Langs 2004 Sessions in PHP - Annabell Langs 1 Sessions» Inhaltsverzeichnis Wozu Sessions? 3 Wie funktionieren Sessions? 5 Wie kann ich die Session-ID übergeben? 8 Sicherheit 9

Mehr

Netzwerke und Verteilte Systeme: TCP/IP. (Vorabversion der Umdrucke)

Netzwerke und Verteilte Systeme: TCP/IP. (Vorabversion der Umdrucke) 1 WS 2000/2001 LVA Netzwerke und Verteilte Systeme (Jörg. R. Mühlbacher, Peter R. Dietmüller, Rudolf Hörmanseder, Dietmar Rimser) Teil HTTP (Peter René Dietmüller) Rückblick 1989 CERN, Tim Berners-Lee

Mehr

Application Server und Continuous Integration

Application Server und Continuous Integration Application Server und Continuous Integration Outline 2 Einleitung Application Server Java EE Enterprise Applikationen vs. Web Applikationen Web Application Life Cycle Servlets JavaServer Pages verschiedene

Mehr

+OK aixrs1.hrz.uni-essen.de POP3 3.3(18) w/imap2 client (Comments to MRC@CAC.Washington.EDU) at Fri, 23 Jan 1998 17:08:20 +0100 (MEZ)

+OK aixrs1.hrz.uni-essen.de POP3 3.3(18) w/imap2 client (Comments to MRC@CAC.Washington.EDU) at Fri, 23 Jan 1998 17:08:20 +0100 (MEZ) Anwendung der BON Problemstellung Implementierung eines einfachen POP3-Clients Anforderungsbeschreibung Es soll ein einfacher POP3-Kommandozeilen-Client entworfen werden, welcher über eine Internet- Verbindung

Mehr

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

FHZ. Servlets/JSP. Lernziele. Hochschule Technik+Architektur Luzern. Inhalt Inhalt 1. Grundlagen 1. Einführung 2. Programmieren für das Web 2. Servlets 3. JSP (Java Server Pages) 4. Beispiel Country 1. Dateneingabe von Benutzer 2. Parameterübergabe 3. Auswerten eines Formulars

Mehr

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

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Präsentation zur Diplomarbeit von Übersicht Java 2 Enterprise Edition Java Servlets JavaServer Pages Enterprise JavaBeans Framework

Mehr

Literatur. [12-5] Upgrading to TLS Within HTTP/1.1 http://tools.ietf.org/html/rfc2817. Netzwerke - WS 2013/14 - Teil 12/HTTP

Literatur. [12-5] Upgrading to TLS Within HTTP/1.1 http://tools.ietf.org/html/rfc2817. Netzwerke - WS 2013/14 - Teil 12/HTTP Literatur [12-1] Gourley, David; Totty, Brian: HTTP. The definitive Guide. O'Reilly, 2002 [12-2] Badach, Anatol; Rieger, Sebastian; Schmauch, Matthias: Web- Technologien. Hanser, 2003 [12-3] Hypertext

Mehr

RESTful Web. Representational State Transfer

RESTful Web. Representational State Transfer RESTful Web Representational State Transfer 1 Warum REST? REST ist die Lingua Franca des Webs Heterogene (verschiedenartige) Systeme können mit REST kommunizieren, unabhängig von Technologie der beteiligten

Mehr

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen FAEL-Seminar Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für Angewandte

Mehr

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges Komponentenbasierte Client-Architektur Hamburg, 16.11.2007 Bernd Olleck IT-Beratung Olleck Agenda Clients aus drei verschiedenen Perspektiven: Technische Infrastruktur Fachliche Sicht Aufgaben eines Clients

Mehr

Aktuelle Technologien zur Entwicklung verteilter Anwendungen RESTful Web Services mit JAX-RS

Aktuelle Technologien zur Entwicklung verteilter Anwendungen RESTful Web Services mit JAX-RS Aktuelle Technologien zur Entwicklung verteilter Anwendungen Überblick, Grundlagen und Entwicklung mit Java Gliederung A. I. Web Services II. RESTful Web Services III. Java API for RESTful Web Services

Mehr

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK und dem Zugriff auf Web Services vertraut. Der Web Service

Mehr

Techniken der Projektentwicklung

Techniken der Projektentwicklung Themen Threading Netzwerk Techniken der Projektentwicklung Threading & Netzwerkprogrammierung Ingo Lütkebohle Termin 13 Ingo Lütkebohle Techniken der Projektentwicklung 1 Themen heute Themen Threading

Mehr

JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel ralf_gitzel@hotmail.de

JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel ralf_gitzel@hotmail.de JSP JSTL JEE Vorlesung Teil 6 Ralf Gitzel ralf_gitzel@hotmail.de 1 Übersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Wiederholung / Vertiefung JSTL Grundlagen JSTL Basisbefehle Templates über JSTL

Mehr

Seminar SS 2000 Enterprise Application Intergration

Seminar SS 2000 Enterprise Application Intergration Seminar SS 2000 Enterprise Application Intergration Web Programming Lifang Chen Betreuer: Marcello Mariucci Juli 2000, Universität Stuttgart Seminar "Web Programming" von Lifang Chen, Juli 2000 Folie 1

Mehr

Informatik I: Einführung in die Programmierung

Informatik I: Einführung in die Programmierung Informatik I: Einführung in die Programmierung 21. Das WWW befragen Albert-Ludwigs-Universität Freiburg Bernhard Nebel 13.01.2015 1 13.01.2015 B. Nebel Info I 3 / 17 Oft braucht ein Programm Informationen,

Mehr

Transmission Control Protocol (TCP)

Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) Verbindungsorientiertes Protokoll, zuverlässig, paketvermittelt stream-orientiert bidirektional gehört zur Transportschicht, OSI-Layer 4 spezifiziert in RFC 793 Mobile

Mehr

9RUOHVXQJDo 13.00-14.00 Uhr Hörsaal 2 EG 0006 3UDNWLNXP Do 14.00-16.00 Uhr PC-Labor U1075

9RUOHVXQJDo 13.00-14.00 Uhr Hörsaal 2 EG 0006 3UDNWLNXP Do 14.00-16.00 Uhr PC-Labor U1075 Praxis der Internet-Programmierung mit Java, Apache und XML (JAX) Institut für Informatik Martin.Guggisberg@unibas.ch KWWSMD[QDQRZRUOGRUJ -$9$ ;0/ $3$&+( Organisatorisches =HLWHQ" 9RUOHVXQJDo 13.00-14.00

Mehr

Angreifbarkeit von Webapplikationen

Angreifbarkeit von Webapplikationen Vortrag über die Risiken und möglichen Sicherheitslücken bei der Entwicklung datenbankgestützter, dynamischer Webseiten Gliederung: Einführung technische Grundlagen Strafbarkeit im Sinne des StGB populäre

Mehr

Man unterscheidet zwischen LAN (Local Area Network) und WAN (Wide Area Network), auch Internet genannt.

Man unterscheidet zwischen LAN (Local Area Network) und WAN (Wide Area Network), auch Internet genannt. Netzwerk Ein Netzwerk wird gebildet, wenn mehrere Geräte an einem Switch mit Netzwerkkabeln angeschlossen werden. Dabei können die einzelnen Geräte miteinander kommunizieren und über ein Netzwerkprotokoll

Mehr

ESB - Elektronischer Service Bericht

ESB - Elektronischer Service Bericht Desk Software & Consulting GmbH ESB - Elektronischer Service Bericht Dokumentation des elektronischen Serviceberichts Matthias Hoffmann 25.04.2012 DESK Software und Consulting GmbH Im Heerfeld 2-4 35713

Mehr

Gefahren aus dem Internet 1 Grundwissen April 2010

Gefahren aus dem Internet 1 Grundwissen April 2010 1 Grundwissen Voraussetzungen Sie haben das Internet bereits zuhause oder an der Schule genutzt. Sie wissen, was ein Provider ist. Sie wissen, was eine URL ist. Lernziele Sie wissen, was es braucht, damit

Mehr

Dreamwap. Systemanalyse

Dreamwap. Systemanalyse Dreamwap Systemanalyse Änderungskontrolle Version Datum Name Bemerkung 0.1 15.7.2000 P. Troxler Initialversion 0.2 16.7.2000 P. Troxler Neue Tabelle: Kap. 2.1. Vgl. Datenbank Tabellen 0.3 18.7.2000 P.

Mehr

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4 UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 WebSphere Application Server Teil 4 Leistungsverhalten el0100 copyright W. G. Spruth,

Mehr

Client-Server mit Socket und API von Berkeley

Client-Server mit Socket und API von Berkeley Client-Server mit Socket und API von Berkeley L A TEX Projektbereich Deutsche Sprache Klasse 3F Schuljahr 2015/2016 Copyleft 3F Inhaltsverzeichnis 1 NETZWERKPROTOKOLLE 3 1.1 TCP/IP..................................................

Mehr

Apache HTTP-Server Teil 2

Apache HTTP-Server Teil 2 Apache HTTP-Server Teil 2 Zinching Dang 04. Juli 2014 1 Benutzer-Authentifizierung Benutzer-Authentifizierung ermöglicht es, den Zugriff auf die Webseite zu schützen Authentifizierung mit Benutzer und

Mehr

Servlets JSP JSP Standard Tag Library

Servlets JSP JSP Standard Tag Library Servlets JSP JSP Standard Tag Library Vorlesung: Applikationsserver Prof. Dr. Ch. Reich rch@fh furtwangen.de http://www.informatik.fh furtwangen.de/~reich/appserver/index.html Java Servlets laufen innerhalb

Mehr

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition Inhaltsverzeichnis Vorwort 13 I Enterprise Java im Überblick 1 Bedeutung von Enterprise Java und IBM WebSphere 21 1.1 Enterprise Java 23 1.1.1 Anforderungen 23 1.1.2 E-Business 30 1.1.3 Java 36 1.2 IBM

Mehr

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 9b: Datenbankapplikationen Statische Web-Seiten Nutzung von HTML Beispiel:

Mehr

Client/Server-Systeme

Client/Server-Systeme Frühjahrsemester 2013 CS108 Programmier-Projekt Kapitel 3: /Server-Architekturen H. Schuldt /Server-Systeme Ein zweischichtiges /Server-System ist die einfachste Variante eines verteilten Systems (also

Mehr

Internet Interconnected Networks - Geschichte -

Internet Interconnected Networks - Geschichte - Internet Interconnected Networks - Geschichte - 1876 Erfindung des Telefons 1941 Erfindung des ersten Computers 60er Jahre ARPA (Advanced Research Projects Agency) ARPANET Ziel: Netz, indem weltweit Rechner

Mehr

BANKETTprofi Web-Client

BANKETTprofi Web-Client BANKETTprofi Web-Client Konfiguration und Bedienung Handout für die Einrichtung und Bedienung des BANKETTprofi Web-Clients im Intranet / Extranet Der BANKETTprofi Web-Client Mit dem BANKETTprofi Web-Client

Mehr

CARM-Server. Users Guide. Version 4.65. APIS Informationstechnologien GmbH

CARM-Server. Users Guide. Version 4.65. APIS Informationstechnologien GmbH CARM-Server Version 4.65 Users Guide APIS Informationstechnologien GmbH Einleitung... 1 Zugriff mit APIS IQ-Software... 1 Zugang konfigurieren... 1 Das CARM-Server-Menü... 1 Administration... 1 Remote-Konfiguration...

Mehr

Wichtige Eigenschaften der verwendeten Protokolle und Schnittstellen

Wichtige Eigenschaften der verwendeten Protokolle und Schnittstellen Wichtige Eigenschaften der verwendeten Protokolle und Schnittstellen Der HTTP-Request die Anforderung einer URL durch den Client Im Folgenden ist ein vollständiger HTTP-Request eines Clients zur Anforderung

Mehr

Dynamik bis zur DB-Interaktion. Marc Schanne. CGI Möglichkeiten

Dynamik bis zur DB-Interaktion. Marc Schanne. CGI Möglichkeiten CGI einfach PHP Dynamik bis zur DB-Interaktion 1 CGI Möglichkeiten Das Common Gateway Interface (CGI) ermöglicht den Entwurf von interaktiven, benutzergesteuerten Web-Applikationen. Der WWW-Server ruft

Mehr

DRESDEN, 08.10.2009 CHRISTIAN.KNAUER@INF.TU-DRESEDEN.DE

DRESDEN, 08.10.2009 CHRISTIAN.KNAUER@INF.TU-DRESEDEN.DE DOKUMENTATION MAAS - MONITORING AS A SERVICE DRESDEN, 08.10.2009 CHRISTIAN.KNAUER@INF.TU-DRESEDEN.DE Dokumentation MaaS - Monitoring as a Service Inhalt 1. MaaS - Monitoring as Service... 3 1.1 Einleitung...

Mehr

Apache. O'REILLY Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo. Das umfassende Handbuch. Ben Laurie und Peter Laurie 2.

Apache. O'REILLY Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo. Das umfassende Handbuch. Ben Laurie und Peter Laurie 2. 2.AUFLAGE Apache Das umfassende Handbuch Ben Laurie und Peter Laurie Deutsche Übersetzung von Peter Klicman, Jochen Wiedmann & Jörgen W. Lang O'REILLY Beijing Cambridge Farnham Köln Paris Sebastopol Taipei

Mehr

Filterregeln... 1. Einführung... 1. Migration der bestehenden Filterregeln...1. Alle eingehenden Nachrichten weiterleiten...2

Filterregeln... 1. Einführung... 1. Migration der bestehenden Filterregeln...1. Alle eingehenden Nachrichten weiterleiten...2 Jörg Kapelle 15:19:08 Filterregeln Inhaltsverzeichnis Filterregeln... 1 Einführung... 1 Migration der bestehenden Filterregeln...1 Alle eingehenden Nachrichten weiterleiten...2 Abwesenheitsbenachrichtigung...2

Mehr

HTTP Kommunikation (1)Request. HTTP - Überblick. HTTP Kommunikation (3) HTTP Kommunikation (2) Beispiel: Die folgende URL werde angefordert (Request)

HTTP Kommunikation (1)Request. HTTP - Überblick. HTTP Kommunikation (3) HTTP Kommunikation (2) Beispiel: Die folgende URL werde angefordert (Request) 15. Das Hypertext Transfer Protokoll 15-1 15. Das Hypertext Transfer Protokoll 15-2 HTTP - Überblick HTTP Kommunikation (1)Request 1. Requests und Responses 2. Content Negotiation 3. State Management (Cookies)

Mehr

Online-News Ausgabe 12, Juli 2000 Seite 56

Online-News Ausgabe 12, Juli 2000 Seite 56 5 Cookies Was ist eigentlich ein COOKIE? Man traut ihnen nicht so recht über den Weg. Angeblich können damit alle persönlichen Daten eines Internetbenutzers heimlich erkundet werden, Hacker erhalten gar

Mehr

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

TimeMachine. Time CGI. Version 1.5. Stand 04.12.2013. Dokument: time.odt. Berger EDV Service Tulbeckstr. 33 80339 München Time CGI Version 1.5 Stand 04.12.2013 TimeMachine Dokument: time.odt Berger EDV Service Tulbeckstr. 33 80339 München Fon +49 89 13945642 Mail rb@bergertime.de Versionsangaben Autor Version Datum Kommentar

Mehr

Programmieren von Webinformationssystemen

Programmieren von Webinformationssystemen Programmieren von Webinformationssystemen Wolfgang Gassler Databases and Information Systems (DBIS) Institute of Computer Science University of Innsbruck dbis-informatik.uibk.ac.at 1 HTML Hypertext Markup

Mehr

Konzepte zur Datenhaltung für Webseiten in einem Web-Content- Management-System

Konzepte zur Datenhaltung für Webseiten in einem Web-Content- Management-System Konzepte zur Datenhaltung für Webseiten in einem Web-Content- Management-System Web-Content-Management-Systeme () dienen dazu, komplexe Websites zu verwalten und den Autoren einzelner Webseiten möglichst

Mehr