Webseiten mit Java. Übersicht. Webtechnologien - WebT. Servlets und JSP. Mit separatem Webserver. Was sind Servlets?

Größe: px
Ab Seite anzeigen:

Download "Webseiten mit Java. Übersicht. Webtechnologien - WebT. Servlets und JSP. Mit separatem Webserver. Was sind Servlets?"

Transkript

1 Webtechnologien - WebT Webseiten mit Java Servlets und JSP Übersicht! Einführung Servlets! Anwendung! Cookies & Sessions! Deployment! Java Server Pages (JSP) ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 1 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 2 Was sind Servlets? Mit separatem Webserver! Servlets sind serverseitige Java-Programme, welche die Antwort (Response) auf die Anfrage (Request) eines User- Agents generiert. " In der Regel ist die Antwort eine HTML Seite " aber auch Text, XML, PDF, etc. möglich User Agent HTTP/S Request HTTP/S Response Webserver PHP CGI File Servlet Handler (mod_jk) JVM Servlet Container! Servlet läuft in einem Servlet-Container (tomcat, Websphere, JRun, Weblogic,...) innerhalb einer Java Virtual Machine (JVM) " Plattformunabhängig " Sicherheitsfeatures von JVM (Sandbox, Servlet-Signing, Permissions für Zugriff auf Ressourcen, Kryptographie,...)! Servlet-Container wird von Webserver aufgerufen oder verwendet integrierten Webserver ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 3 Formular mit Submit-Button oder Link Client Server Servlet-Context: (z.b. /servlet/*) *.jsp File Servlet 1 DB... Servlet n Fremdsystem ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 4 Servlet API

2 Mit integriertem Webserver Servlet Features! Kompilierte Klassen (ByteCode) User Agent Formular mit Submit-Button oder Link Client HTTP/S Request HTTP/S Response Server JVM integrierter Webserver Servlet API Servlet Container Servlet 1... Servlet n File DB Fremdsystem " Code wird vorgängig kompiliert und muss nicht zur Laufzeit geparst und übersetzt werden + Syntaxcheck bereits zur Kompilierzeit + schnell, da nicht jedes mal neu geparst und interpretiert - aufwendigerer Entwicklungsprozess (compile & deploy)! Direkte Unterstützung wichtiger webspezifischer Funktionen Einfaches Auslesen der Input-Parameter (Felder, Parameter) Cookies / Sessions Lesen und setzen von HTTP Request bzw. Response Headern! Nutzung aller Möglichkeiten von Java Zugriff auf Ressourcen (Dateien, DB,...) und Fremdsysteme (Andere Dienste (Webserver, ,...), ERP, Legacy-Systeme,...) Java-Sicherheit (Sandbox, Signing, Permissions, Kryptographie,...) objektorientiert ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 5 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 6 Servlet-API Klassen! java.servlet.servlet Java-Interface, welches die 5 Basisfunktionen des Servlet API definiert. Lifecycle-Funktionen: - init(servletconfig) - service(servletrequest, ServletResponse) - destroy() Configuration und Statusinformation: - getservletconfig() - getservletinfo()! java.servlet.genericservlet Abstrakte Implementierung des Servlet-API protokollunabhängig! java.servlet.http.httpservlet Basisimplementierung für HTTP/S <<Interface >> Servlet GenericServlet HttpServlet ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 7 Servlet Lifecycle! init (ServletConfig) Wird vor der Behandlung des ersten Requests durch Servlet-Container aufgerufen ServletConfig enthält Initialisierungsparameter (Servlet-Context) Servlet-Context wird in <web-app> im deploymentdescriptor web.xml spezifiziert! service(servletrequest, ServletResponse) Wird bei jedem Client-Request aufgerufen Eine Instanz behandelt alle Requests (Multithreading) HttpServlet verteilt die service-calls auf protokollspezifische Methoden: - doget(), dopost(), doput(), dohead(),... - Jeweils mit den erweiterten Parametern HttpServletRequest und HttpServletResponse! destroy() Wird aufgerufen bevor das Servlet aus dem Speicher entfernt wird. (z.b. nach Timeout von 30' definiert im deployment-descriptor web.xml) Bereinigen von Ressourcen ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 8

3 Servlet - Eigenschaften! Eine einzige Instanz der Servlet-Klasse behandelt normalerweise alle Requests für das Servlet! Multithreading! Servlets müssen Thread-Safe implementiert werden! Gemeinsame Instanzvariablen (Vorsicht)! Synchronisierung des Zugriffs auf Ressourcen (Session, Files,...) Übersicht! Einführung Servlets! Anwendung! Cookies & Sessions! Deployment! Java Server Pages (JSP) ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 9 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 10 First Servlet - Text - Output HttpServlet import java.io.*, javax.servlet.*, javax.servlet.http.*; // FirstServlet abgeleitet von HttpServlet public class FirstServlet extends HttpServlet { // Wir reagieren nur auf HTTP GET-Requests public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { PrintWriter out= res.getwriter(); // Output-Stream des Response res.setcontenttype("text/plain"); // Content-Type: Header setzten out.println("hallo Welt um " + new Date() + "\n");! Klasse "HttpServlet" Basis für Servlet das mit HTTP angesprochen Abgeleitet von "GenericServlet" komfortablere Benutzung (z.b. Formularfelder, Sessions, Cookies) In der "service"-methode werden die HTTP-Requests analysiert und dementsprechend folgende Methoden direkt aufgerufen: - GET " doget(..) - POST " dopost(..) - HEAD " dohead(..) - PUT " doput(..) - DELETE " dodelete(..) - OPTIONS " dooptions(..) - TRACE " dotrace(..) Die Methoden auf welche das Servlet reagieren soll, müssen im Servlet überschrieben werden (sonst wird Return-Code 400 Bad Request generiert) ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 11 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 12

4 HttpServletRequest/Response Diese HTTP-Methoden (doget(), dopost(),...) enthalten jeweils zwei Parameter:! HttpServletRequest req Dient dem Zugang zu Informationen im Client-Request. Bsp: - req.getremoteadr(); (=CGI REMOTE_ADR) - req.getparameter(string name); meldet den Parameter mit dem Namen "name" zurück (z.b. String vorn = req.getparameter("vorname"); )! HttpServletResponse res Dient zur Rückgabe der Servlet-Antwort; Bsp: - res.setcontenttype("text/plain"); - PrintWriter out = res.getwriter(); PrintWriter ermöglicht Schreiben (mit Wandlung von Vars in Strings) in Servlet-Text-Output-Stream: out.println( Hallo + i + j ); First Servlet - HTML-Output import java.io.*, javax.servlet.*, javax.servlet.http.*; // FirstServlet abgeleitet von HttpServlet public class FirstServlet extends HttpServlet { // Wir reagieren nur auf HTTP GET-Requests public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { String title = "Simple Servlet Output"; res.setcontenttype("text/html"); // Content-Type: Header setzten PrintWriter out= res.getwriter(); // Output-Stream des Response out.println("<html><head><title>"+title+"</title></head>"); out.println("<body><h1>" + title + "</h1>"); out.println("<p>this is output from SimpleServlet</p>"); out.println("</body></html>"); out.close(); //Schliessen und abschicken der Webpage. ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 13 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 14 Parameter-Verarbeitung Teil 1 - HTML-Formular für Parameter-Eingabe: Servlet-URL <html><head><title>servlet mit Parameter: Telefoneingabe</title></head> <body><h1>servlet mit Parameter</h1> <form method="get" action="http://localhost:8081/zem/tellist"> Ihr Name? <input type="text" name="name" /><br /> Tel. Nr.? <input type="text" name="telnr" /><br /> <input type="submit" value="fragen senden"/> </form> </body></html> Parameter-Verarbeitung Teil 2 - Der HTTP GET Request mit Query-String: GET-Request-Parameter werden in URL als Query_string nach? übertragen. Achtung auf URL-Kodierung!?name=Jan+Zeman&telnr= Teil 3 - Bearbeitung des Requests:! Servlet Aufgaben: Request-Entgegennehmen Parameterübergabe und splitten des QUERY-STRING Decodierung der URL-encoded Zeichen (%xx,+,...) Antwort generieren und per HTTP zurücksenden. ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 15 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 16

5 Parameter Verarbeitung import java.io.*, javax.servlet.*, javax.servlet.http.*; public class TelList extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { String name = null; String tel = null; res.setcontenttype("text/html"); // Content-Type: Header setzten PrintWriter out= res.getwriter(); // Output-Stream des Response try { name = req.getparameter("name"); tel = req.getparameter("telnr"); catch (Exception error) { error.printstacktrace(); Bequemes Extrahieren der Parameter aus dem Request Objekt mittels ihres Namen. out.println("<html><head><title>parameter Procesing</title></head>"); out.println("<body><p>ihr Name ist: " + name + "</p>"); out.println("<p>ihre Tel.-nummer ist:" + tel + "</p>"); out.println("</body></html>"); out.close(); //Schliessen und abschicken der Webpage. GET / POST Request! GET-Request " doget(): Parameter in URL codiert Kann (mit Parameter) als Bookmark gespeichert werden! POST-Request " dopost(): Parameter in Request-Body codiert Beliebig Grosse Datenmenge! Extraktion der Parameter bei beiden Fällen gleich: req.getparameter("name");! Servlets, die beide Methoden unterstützen sollen Eine er Methoden (z.b. doget) implemenieren Diese aus der anderern (" dopost) aufrufen public dopost (HttpServletRequest req, HttpServletResponse res) throws ServletException, IPException { doget(req, res); ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 17 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 18 Übersicht! Einführung Servlets! Anwendung! Cookies & Sessions! Deployment! Java Server Pages (JSP) Cookies! Ermöglicht Informationen vom Server auf dem Client permanent zu speichern (Details " Cookies, Session PHP HTTP- Client HTTP-Request: Header mit allen Cookies für geg. Server und Domain (automatisch) Request-Kommando und evtl. Body HTTP-Antwort: Header mit!set-cookie -Kommando Antwort-Body HTTP- Server! Cookie im Client via Set-Cookie-Header in einer HTTP-Antwort an einen Client deponiert. Bsp.: Set-Cookie: NAME=VALUE; expires=date; path=path; DOMAIN=DOMAIN_NAME; [secure] ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 19 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 20

6 Cookies Setzen von Cookies Cookie mycookie = new Cookie("summe", "245"); mycookie.setdomain("zhwin.ch"); // Lebensdauer in Sekunden setzen (z.b. 3600s = 1h) // wenn negativ : Cookie beim Beenden des Browsers löschen // wenn 0 (Null): Cookie sofort löschen mycookie.setmaxage(3600); response.addcookie(mycookie); Auslesen der Cookies! Cookie-Array aus request holen! Array durchlaufen und nach bestimmtem Cookie suchen. String summe = null; Cookie[] cookies = request.getcookies(); if (cookies!= null) { for(cookie cookie : cookies) { if (cookie.getname().equals("summe")) { summe = cookie.getvalue(); Sessions! Serverseitiger Datenspeicher, in welchem "beliebige" Daten requestübergreifend gespeichert werden können. Idee und Mechanismus gleich wie bei " PHP-Sessions Beliebige Datenmenge (Java-Objekte) Sicher (kann nicht extern manipuliert werden)! Verbindung Zwischen Request und Session vi SessionId in Cookie (sessionid = 0x8798A63EB77948D789B) Rewriting der sessionid in jeder Antwortseite - Hidden-Feld in Formular <input type="hidden" name="sessionid" value="..." /> - URL-Rewriting GET-Parameter an jeden Link / Form-Action anhängen...?sessionid=0x8798a63eb77948d789b ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 21 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 22 Sessions Sessions HTTP- Client Cookie-File... sessionid 20 domain x.y.ch.. HTTP-Request: Initiierung einer Session HTTP-Antwort:!Setze Cookie für Server x.y.ch sessionid 20 HTTP-Request: (Fortsetzung der Session) Cookie sessionid 20 HTTP- Server Session-Variablen (Objekte auf Server) sessionid, Var1, Var2,. 5 " Warenkorb=100, 504, "..,.., 20 " Authentifiziert=TRUE,. 60 "..,..,! Automatisches Session-Tracking (basierend auf sessionid)! Session erstellen: HttpSession session = request.getsession(); Gibt assoziierte Session zurück Erstellt neue Session, wenn nötig! Werte speichern / lesen: session.setattribute("name", wert); Objekt wert = session.getattribute("name");! Session beenden: session.invalidate(); ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 23 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 24

7 Session - Beispiel public class SessionTest extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { HttpSession session = req.getsession(); // Session-Attribute sind Objekte " Integer-Wrapper Integer sum = (Integer) session.getattribute("anzahlzugriffe"); int ival = 0; if (sum!= null) { ival = sum.intvalue(); else { session.setattribute ("datum", new Date()); // Transaktionszahl inkrementieren und in Session speichern ival++ ; sum = new Integer(ival); session.setattribute ("AnzahlZugriffe", sum);... // Fortsetzung auf nächster Folie ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 25 Sessions - Beispiel... // Fortsetzung von vorheriger Folie // Ausgabe der Session-Details res.setcontenttype("text/plain"); PrintWriter out = res.getwriter(); // Ausgabe der Session-Info out.println("dies ist " + ival + " Request in dieser Session"); out.println("session Information \n\n"); out.println ("Identifier = "); out.println (session.getid()); out.println ("Created = "); out.println (new Date( session.getcreationtime())); // ist auch implizit gespeichert out.println ("Last Accessed = "); out.println (new Date( session.getlastaccessedtime()) ); out.println ("New Session? = "); out.println (session.isnew() ); // noch einmal alles Ausgeben, was in der Session vorhanden ist java.util.enumeration enum = session.getattributenames(); while { enum.hasmoreelements(); ) { String name = (String)enum.nextElement(); // Get the name of the attribute Object value = session.getattribute(name); // Get the value of the attribute out.print (names + " = " + value); ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 26 Übersicht! Einführung Servlets! Anwendung! Cookies & Sessions! Deployment! Java Server Pages (JSP) Deployment Als Servlet-Entwickler müssen Sie:! Servlet-Code in Java schreiben " siehe Bsp. 3 Allfällige Vorgänge bei Servlet-Initialisierung und Zerstörung init(..), destroy(..) In den Methoden doget(..) und/oder dopost(..) - Die Request-Information und Parameter extrahieren - HTML-Code der generierte Antwort-Webseite in einen Text-Output- Stream schreiben (wie eine Textdatei).! Servlet auf dem WEB-Server installieren und einsatzbereit machen (Deployment) beim Apache-Tomcat Server: - Die Servlet-Klassen auf den Webserver kopieren - Eine web.xml Datei schreiben, welche u.a. die Servlet's URL definiert und dem Server den Namen der Servlet-Klasse mitteilt. ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 27 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 28

8 Deployment! Folgende Dateien werden benötigt Übersetzte Servlet-Klasse(n): TelListe.class (Bsp. 3) HTML-Seite mit dem Formular tellist.html - der Form- action -Tag definiert den Aufrufnamen des Servlets in der URL: tellist (muss nicht identisch mit dem Dateinamen sein " Verknüpfung in web.xml) Servlet Deployment Description file web.xml (" nächste Folie)! File-Hierarchie auf dem Server: +-- webapps Webapps-Root-Verzeichnis des Webservers Tomcat +-- tellist/ +-- tellist.html (z.b. "www" auf labts001 oder mit lokal installiertem Tomcat- +-- WEB-INF/ Server): C:\Programme\Apache.\Tomcat 5.0\webapps\ +-- web.xml +-- classes/ +-- TelList.class ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 29 deployment descriptor: web.xml! web.xml definiert u.a. mit welcher URL der Servlets aufgerufen wird und informiert den Server welches die Hauptklasse des Servlets ist: <?xml version="1.0" encoding="iso "?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd"> <web-app> <servlet> <servlet-name> bsp3param </servlet-name> <servlet-class> TelListe </servlet-class> </servlet> Unterverzeichnis-Pfad (durch Package-Name definiert) <servlet-mapping> <servlet-name> bsp3param </servlet-name> <url-pattern> /tellist </url-pattern> </servlet-mapping> </web-app> URL-Aufrufname des Servlets! Wichtige Abschnitte sind: <servlet-name> ist eine beliebige Bezeichnung des Servlets. Es muss aber gleich sein in <servlet> und <servlet-mapping>. <url-pattern> ist Servlet-Aufrufname in der URL (relativ zum webapps-verzeichis) <servlet-class> ist Dateiname der Hauptklasse des Servlets (ohne Extention)! web.xml kann auch weitere Angaben zum Servlet enthalten ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 30 Erfahrungen! Programmierer ist von der Parallelität nicht völlig entlastet, zum Teil überraschend für Programmierer! Generierung von HTML-Code als Antwortseiten mit println -Anweisungen ist mühsam Statische Abschnitte aus einer Datei kopieren Abhilfe JSP! Layout-Anpassungen sind aufwändig! Einarbeitungszeit für (Java-)Programmierer ist sehr kurz! Session-Management ist sehr wertvoll! Wird erfolgreich bei grösseren Sites eingesetzt Übersicht! Einführung Servlets! Anwendung! Cookies & Sessions! Deployment! Java Server Pages (JSP)! Vorteile vor allem, wenn weitere Services und Protokolle von Servlet aus angesprochen werden müssen ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 31 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 32

9 Server-Side Scripting - JSP! Konzept sehr ähnlich wie ASP oder PHP: JSP bettet Bruchstücke von Servlet-Code in den HTML-Code ein normales Servlet API wird weiterhin benutzt Bequemer als reiner Servlet-Java-Code! Benötigt JSP/Servlet-fähigen Java Server Aus den Code-Bruchstücken werden automatisch Servlets kreiert, mit Java Compiler übersetzt und dann als normaler Servlet ausgeführt Läuft auf verschiedenen Plattformen! Vorteile: Einfacher als ganze Java-Programme, leichter Einstieg dank Scripting JSP-Seiten werden in Java codiert, dadurch gute Verfügbarkeit von Know-How Gute Leistungsfähigkeit und Effizienz, da Servlets nur beim ersten Aufruf übersetzt werden und dann im Speicher bleiben - Gute Erweiterbarkeit dank Nutzung von JavaBeans und eigene JSP-Tags - Mächtig, durchgängige Verwendung von JAVA als Programmiersprache, JSP: Einführungsbeispiel <html> <head> <titel>hello</title> </head> <body> Normale HTML-Seite Servlet-Code-Bruchstück: Extraktion des Aufrufparameter (via Name) dynamisches Einfügen des Parameters in den output-stream (out.println) <h1> <% if (request.getparameter("name") == null) { out.println("hello World"); else { out.println("hello, " + request.getparameter("name")); %></h1> </body> </html> ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 33 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 34 Was lauft hinter der Kulisse?! JSP-Server kreiert automatisch aus dem Code-Bruchstück ein spezielles Servlet, compiliert es lädt es führt es aus, um den dynamischen Seiteninhalt zu generieren. Grundelemente! Die JSP-Scripplets (werden normal in Java codiert). <% Scriptlet-Code %>: Sie werden in Servlet s _jspservice-methode eingesetzt! Output in die dyn. generierte WEB-Seite: out.println(value) oder abgekürzt <%=value%> als Value kann ein beliebiger Java-Ausdruck, eine Variable oder String stehen! Deklarationen: <%! code %> werden in das Body der dazugehörigen Servlet Klasse eingesetzt (z.b. allgemein zugängliche Hilfsmethoden und Servlet-Instanzvariablen)! Kontrol-Ausgabe auf Webserver-Konsole: System.out.println( Text );! Weitere Details: ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 35 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 36

10 Grundelemente! Vordefinierte Variablen request, HttpServletRequest response, HttpServletResponse session, out, application, HttpSession associated with the request PrintWriter (a buffered version called JspWriter) (ServletContext = getservletconfig().getcontext().) Servlets and JSP pages can store persistent data in the ServletContext object rather than in instance variables. ( setattribute() and getattribute() ) Servlet-Context is shared by all servlets in the servlet engine Config, This variable is the ServletConfig object for this page. pagecontext new class to give a single point of access to many of the page attributes and to provide a convenient place to store shared data. The pagecontext variable stores the value of the PageContext object associated with the current page. ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 37 Grundelemente! JSP Directiven: <jsp: include file= footer.jsp flush=true /> <jsp: forward page= /> Seiten-Direktive: page import="java.util.*,java.text.*" %> kontrolliert die Struktur des dazugehörigen Servlets z.b. Importing von Klassen. Anpassen der Servlet superclass, Setzen des content type etc. Sie kann auf beiliebiger Stelle in der JSP-Seite auftreten und definiert ein oder mehrere der folgenden (case-sensitive) Attributen: import, contenttype, isthreadsafe, session, buffer, autoflush, extends, info, errorpage, iserrorpage, language. include-direktive: fügt Inhalt einer Datei an der Stelle der Direktive ein zum Zeitpunkt der Servlet-Kompilation taglib-direktive: erlaubt eigene JSP-Tags zu definieren. ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 38 JSP-Beispiel Expressions <html><head> <title>jsp Expressions</title> <link rel="stylesheet href="jsp-styles.css" TYPE="text/css" /> </head> <body> <h2>jsp Expressions</h2> <ul> <li>current time: <%= new java.util.date() %></li> <li>your hostname: <%= request.getremotehost() %></li> <li>your session ID: <%= session.getid() %></li> <li>the <code>testparam</code> form parameter: <%= request.getparameter("testparam") %></li> </ul> </body> </html> Zähler mit Instanzvariable <html> <head><title>jsp Declarations</title> <link rel="stylesheet" href="jsp-styles.css type="text/css" /> </head> <body> <h1>jsp Declarations</h1> <%! private int accesscount = 0; %> // Deklaration einer Instanzvariable <h2>accesses to page since server reboot: <%= ++accesscount %></h2> // Variable erhöhen und ausgeben </body> </html> Quelle: Buch von M. Hall.!Core Servlets and JSP ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 39 Quelle: Buch von M. Hall.!Core Servlets and JSP ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 40

11 Bedingte Ausgabe Beispiel: <% if (Math.random() < 0.5) { %> Have a <B>nice</B> day! <% else { %> Have a <B>lousy</B> day! <% %> // purer HTML-Code // purer HTML-Code JSP und Java Beans! JavaBeans API: Standard-Format für wieder verwendbare Klassen.! Andere Programme können automatisch die Information über diese Klasse entdecken und können dann die Bean-Klasse kreieren und manipulieren, ohne dass dafür User-Code geschrieben werden muss (z.b. Visuelle Komponenten in JBuilder) (Analogie zu MS-Component Object Modell)! Tutorials " Die if-else-abschnitte können sich über mehrere Blöcke mit HTML und/oder Java-Scriptlets erstrecken! Für den JSP-Einsatz sind folgende Bean-Eigenschaften relevant:! Bean Klasse muss einen leeren Konstructor haben! Bean Klasse sollte keine public instance Variablen haben! Für die Manipulation aller wichtigen Instanzvariablen (Property xxx) sollten die Methoden getxxx and setxxx bereitgestellt werden. (beachte Klein-Grossschreibung! ) ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 41 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 42 JSP und Java Beans Anwendung von Beans in JSP! Verwendung von reusable Classes! Spezielle, komplexe Funktionalität (mehr als im JSP-Script direkt möglich ist)! Speicherung persistenter Daten, die z.b. von mehreren Seiten geteilt werden müssen. Syntax für Bean-Benutzung <jsp:usebean id="name" class="package.class" />! Beispiel: <jsp:usebean id="book1" class="coreservlets.book" /> bewirkt etwa: <% coreservlets.book book1 = new coreservlets.book(); %> JSP und Java Beans Zugriff auf Bean-Eigenschaft. Beispiel Property title.! Lesen <jsp:getproperty name="book1" property="title" /> oder <%= book1.gettitle() %> == Aufruf der Methode gettitle()! Schreiben <jsp:setproperty name= book1" property="title"/> oder <%= book1.settitle("title") %> man beachte die Konvention: property-name = title (mit kleinem t) dazugehörige get/set-methoden: GetTitle, SetTitle (mit grossem T). Der schneller Zugriff auf alle Parameter einer Anfrage (*-property)! Falls alle Namen im Formular und in der Bean übereinstimmen " Übergabe vom kompleten Inhalt eines Formulars (alle Felder werden als gleichnamige Variablen) im Bean verfügbar gemacht (siehe auch Bsp.): <jsp:setproperty name="book1" property="*"/> ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 43 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 44

12 Beispiel Nummern raten Java Server Pages (JSP) page import = "num.numberguessbean" %> <jsp:usebean id="numguess" class="num.numberguessbean" scope="session"/> <jsp:setproperty name="numguess" property="*"/> <html><head><title>number Guess</title></head> <body bgcolor="white"> <% if (numguess.getsuccess()) { %> Congratulations! You got it. And after just <%= numguess.getnumguesses() %> tries.<p> <% numguess.reset(); %> Care to <a href="numguess.jsp">try again</a>? <% else if (numguess.getnumguesses() == 0) { %> Welcome to the Number Guess game.<p> I'm thinking of a number between 1 and 100.<p> <form method=get> What's your guess? <input type=text name=guess> <input type=submit value="submit"> </form> <% else { %> Good guess, but nope. Try <b><%= numguess.gethint() %></b>. You have made <%= numguess.getnumguesses() %> guesses.<p> I'm thinking of a number between 1 and 100.<p> <form method=get> What's your guess? <input type=text name=guess> <input type=submit value="submit"> </form> <% %> </body></html> Instanzierung des Bean-Objektes numgess (falls nicht bereits vorhanden); Scope (Bereich): Lebensdauer des Objekts Bean-Instanzvariablen (Properties) können gesetzt oder abgefragt werden (set/get) Hier werden ALLE gleichnamigen Variablen aus dem Formular in die Bean numgess übertragen ( guess ) Als numguess.jsp gespeichert ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 45 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 46 JSP Tag Libraries! A Tag Library is a collection of actions that encapsulate functionality to be used from within a JSP page Core <c:tagname...> XML processing <x:tagname...> I18N capable formatting <fmt:tagname...> Database access (SQL) <sql:tagname...> JSP Tag Libraries! JSP tag libraries realisieren modulare Funktionalität! Minimieren die Menge des selbsgeschriebenen Java- Codes (nur das, was es noch nicht als Library gibt muss man selber programmieren)! JSP tag Libraries sind portable! Man kann auch eigene tag library definieren! Why using it? ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 47 ZHW 04/2007 J. Zeman, P. Feisthammel, G. Burkert, C. Marti 48

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

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

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Praktikum Datenbanksysteme Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Tomcat-Installation $JAVA_HOME (z.b. /home/dbp00/j2sdk1.4.2) $CATALINA_HOME (/home/dbp00/jakarta-tomcat-4) Skripte zum Start/Stop:

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

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

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2013/2014 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 6. Februar 2014 Betriebssysteme / verteilte

Mehr

Java Server Pages (JSP)

Java Server Pages (JSP) Überblick über Internet-Technologien Server-Technologien Datenbankkopplung Servlets JSP PHP CGI XML+XSL Dokumentsprachen Client-PGM ruft DB-Server Web-Server ruft Datenbankserver HTML+Javascript HTML+Applets

Mehr

Sitzungszustand. Vorläufige Version 309 c 2005 Peter Thiemann

Sitzungszustand. Vorläufige Version 309 c 2005 Peter Thiemann Sitzungszustand Gruppierung von Anfragen zu Sitzungen (Sessions) Klasse HttpServletRequest Methode HttpSession getsession (bool create) liefert aktuelle Sitzungsobjekt Zustand lokal zur Anwendung (ServletContext)

Mehr

Webbasierte Informationssysteme

Webbasierte Informationssysteme Beispiel: Web-Shop SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn Applikation Software Client Web-Shop,... Web-Browser mit Applet,...??? Server Produkt- Datenbank Web-Server, Servlet Datenbank,...

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

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

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

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

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

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

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen JavaServerPages als dynamische View einer MVC Anwendung Prof. Dr. Nikolaus Wulff Von Servlets zu JSP's Die Erstellung der HTML Ausgabe in einem Servlet endete in uneffektiven

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

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

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

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

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

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

Einleitung JavaServer Pages Erweiterungsmechanismen Beispiel Fazit. JavaServer Pages. Seminar Webprogrammierung WS04/05. Timothy Burk. 6. Seminar Webprogrammierung WS04/05 6. Juni 2005 1 Einleitung Die Vorgeschichte Java-Servlets 2 Merkmale Von der JSP zur HTML-Ausgabe Syntax 3 4 5 Die Vorgeschichte Java-Servlets Einleitung Ansätze für dynamische

Mehr

Java zur Realisierung von Internetanwendungen

Java zur Realisierung von Internetanwendungen Java zur Realisierung von Internetanwendungen Elementare Web-Programmierung HTTP Web-Browser Web-Browser GET http://www.zw.fh-kl.de/beispiel.htm Beispiel Ein

Mehr

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

J2EEKurs. J2EE Servlets und JavaServer Pages. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, 10.-14.10.2005. Universität Freiburg, Germany J2EE und Universität Freiburg, Germany Sommercampus, Freiburg, Germany, 10.-14.10.2005 Einführung Verarbeitung e Zustandsverwaltung Expression Language Frontendtechnologie programmorientiert Präsentationsschicht

Mehr

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

Projekt Systementwicklung. Wie kommen Daten von einem Webserver? Java-Applikationsserver. Servlets, JSP. Handout S. 1. Dr. Projekt Systementwicklung Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2009/2010 1 / 32 Wie kommen Daten von einem Webserver? In der Praxis existieren verschiedene Wege, wie ein Server einem Client

Mehr

Webanwendungen mit Java

Webanwendungen mit Java Vorlesungsreihe Entwicklung webbasierter Anwendungen Webanwendungen mit Java Prof. Dr.-Ing. Thomas Wiedemann email: wiedem@informatik.htw-dresden.de HOCHSCHULE FÜR TECHNIK UND WIRTSCHAFT DRESDEN (FH) Fachbereich

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

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

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

Datenbanken: Servlets und JSP

Datenbanken: Servlets und JSP Datenbanken: Servlets und JSP Datenbank-Anwendungen für das Web basieren auf der Client - Server - oder Client - Middleware - Datenbankserver - Architektur. Grundsätzlich zu unterscheiden sind: Client-basierte

Mehr

Java Server Pages 2 und Benutzerdefinierte Tags. Strahil Yordanov

Java Server Pages 2 und Benutzerdefinierte Tags. Strahil Yordanov Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov Überblick Einleitung JSP im Kontext von J2EE JSP2 Benutzerdefinierte Tags Zusammenfassung Einleitung Java Server Pages ist eine Technik

Mehr

Überblick über Internet-Technologien

Überblick über Internet-Technologien WebServer-Technologien SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Überblick über Internet-Technologien Server-Technologien XSP Java Server Pages

Mehr

Internetanbindung von Datenbanken

Internetanbindung von Datenbanken Internetanbindung von Datenbanken SQLJ Servlets http://galahad.informatik.fh-kl.de/frankfurter SQLJ-1 Gliederung Einführung in Servlets Entwicklungswerkzeuge Servlets HTML-Beispiel Servlet Beispiel Servlet

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

Java zur Realisierung von Internetanwendungen

Java zur Realisierung von Internetanwendungen Java zur Realisierung von Internetanwendungen MVC, JSP, Custom und Core Tags Darstellungsschicht Anwendungsschicht Datenschicht Architektur Browser Applikationsserver mit Servlet-Container DB-Server Web2-2

Mehr

JSP, Tomcat, JDBC. Agenda. Übung Informationsintegration 3.5.2004. JSP & Tomcat JDBC. l Syntax. l Implizite Objekte. l Direktiven

JSP, Tomcat, JDBC. Agenda. Übung Informationsintegration 3.5.2004. JSP & Tomcat JDBC. l Syntax. l Implizite Objekte. l Direktiven JSP, Tomcat, JDBC Übung Informationsintegration 03.05.2004 Agenda JSP & Tomcat Syntax Impizite Objekte Direktiven JDBC 2 Java Server Pages - JSP Was ist eine JSP? Bietet die Mögichkeit, dynamischen Inhat

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

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

Kapitel 5 Serverseitige Technologien

Kapitel 5 Serverseitige Technologien Kapitel 5 Serverseitige Technologien Multimediale Web-Anwendungen Dr. E. Schön Sommersemester 2015 Folie 70 SSI-Beispiele Uhr

Mehr

Das WWW im Schweinsgalopp

Das WWW im Schweinsgalopp Das WWW im Schweinsgalopp Woher: T. Berners-Lee The actual observed working structure of the organisation is a multiply connected "web" whose interconnections evolve with time. In this environment, a new

Mehr

Servlets und Java Server Pages

Servlets und Java Server Pages Java: Kapitel 10 Einführung in die Java Platform, Enterpri Edition (Java EE): Servlets und Java Server Pages Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Überblick

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

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

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

Servlets - Praktische Beispiele

Servlets - Praktische Beispiele In diesem Kapitel: Übungen Installation von Jakarta Hello World Servlet Installation des Java Web Servers Hello World Servlet Zugriff auf Servlet Parameter ServiceTime Servlet Generierung von Inline Content

Mehr

Auslieferungsmethoden im Performancevergleich Zieleinlauf mit Java

Auslieferungsmethoden im Performancevergleich Zieleinlauf mit Java Auslieferungsmethoden im Performancevergleich Zieleinlauf mit Java Dominik Gruntz & Hans-Peter Oser Fachhochschule Aargau/Nordwestschweiz d.gruntz@fh-aargau.ch & h.oser@fh-aargau.ch Im ix 3/2005 wurde

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

ASP: Active Server Pages

ASP: Active Server Pages ASP: Active Server Pages Allgemeines: ASP ist die serverseitige Schnittstelle zu Skripten/Programmen ausgehend vom Microsoft-Internet- Information-Server (z.b. in Windows Server enthalten) Skript- und

Mehr

Java Servlets. Praktikum aus Softwareentwicklung 2. Java Praktikum SS 2008 Gerald.Ehmayer@borland.com

Java Servlets. Praktikum aus Softwareentwicklung 2. Java Praktikum SS 2008 Gerald.Ehmayer@borland.com Java Praktikum aus 1 Java Grundlagen HTTP-Protokoll, Request/Response, Architektur Merkmale, Servlet-Methoden, Lebenszyklus, Sessions Session Tracking API, Cookies, 2 Grundlagen Web-Browser realisiert

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

Einleitung. Gliederung. Struts-Framework. Model-View-Controller-Pattern

Einleitung. Gliederung. Struts-Framework. Model-View-Controller-Pattern Struts-Framework Model-View-Controller-Pattern STRUTS Open Source Web Application Framework Unterprojekt des Apache Jakarta Basierend auf: JSP, Servlets, JavaBeans Model View Controller Architektur Dipl.-Inf.

Mehr

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

A Java EE component is a self-contained functional software unit that is assembled into a Java EE. communicates with other components. Begriffsdefinitionen Java EE A Java EE component is a self-contained functional software unit that is assembled into a Java EE application with its related classes and files and that communicates with

Mehr

Einführung in Internet- und Middleware Technologien

Einführung in Internet- und Middleware Technologien Einführung in Internet- und Middleware Technologien SS 2003 Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanken und Informationssysteme 2 - SS 2003 - Prof. Dr. Stefan Böttcher Folie 1 Inhaltsüberblick

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

Dynamische Webseiten mit JavaServer Pages (JSP)

Dynamische Webseiten mit JavaServer Pages (JSP) Dynamische Webseiten mit JavaServer Pages (JSP) einige Links: java.sun.com/products/jsp JavaServer Pages java.sun.com/products/servlets Java Servlet Technologie www.micromata.de Schrödinger (Download)

Mehr

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

Algorithmen und Programmierung V WS 10/11 Nachklausur am 5.4.2011, 12.15-13.45 Uhr Maximal erreichbare Punktzahl: 80 Erforderliche Punktzahl: 40 Name: Unterschrift: Algorithmen und Programmierung V WS 10/11 Nachklausur am 5.4.2011, 12.15-13.45 Uhr Maximal erreichbare Punktzahl: 80 Erforderliche Punktzahl: 40 Die jeweilige Punktzahl entspricht in

Mehr

Programmieren von Webinformationssystemen

Programmieren von Webinformationssystemen Programmieren von Webinformationssystemen Nikolaus Krismer Databases and Information Systems (DBIS) Institute of Computer Science University of Innsbruck dbis-informatik.uibk.ac.at 1 PHP Ursprünglich:

Mehr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

Mehr

Java Web-Anwendungen Modell 1. JSPs & Servlets Beans Model-1-Architektur

Java Web-Anwendungen Modell 1. JSPs & Servlets Beans Model-1-Architektur Java Web-Anwendungen Modell 1 JSPs & Servlets Beans Model-1-Architektur Web-Server Was ist ein Web-Server? Implementierung des HTTP-Request-Response-Paradigmas Empfängt HTTP-Requests: URL evtl. mit Parametern

Mehr

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

Websuche: Benutzer-Schnittstelle. Eingabeformulare. Ein einfaches Suchformular. Web-Suche. Benutzer-Schnittstelle. Websuche: Benutzer-Schnittstelle Web-Suche Benutzer-Schnittstelle Web-Suchmaschinen brauchen natürlich eine webbasierte Benutzer-Schnittstelle. Die Suchseite muss einen Anfragestring entgegennehmen und

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 06: Webprogrammierung Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2013 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 22 Inhalt Vorlesungsüberblick

Mehr

Existierende Systeme I Bibliotheken & Frameworks

Existierende Systeme I Bibliotheken & Frameworks Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen Existierende Systeme I Bibliotheken & Frameworks Von Christian Schneider Paderborn, den 18.06.2004 Übersicht Motivation Dynamische

Mehr

Schritt 4: Hallo Enterprise Bean

Schritt 4: Hallo Enterprise Bean Prof. Dr. Th. Letschert FB MNI JEE Schritt 4: Hallo Enterprise Bean Einstieg: EJBs erzeugen und nutzen Meine erstes EJB Projekt Enterprise Beans sind eine Backend Technologie, die mit unterschiedlichen

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

Der IBM Websphere Portalserver

Der IBM Websphere Portalserver Der IBM Websphere Portalserver Ergebnisse aus dem Universitäts-Praxis-Projekt 2001/2002 Vortrag von Il-Hyun Kim und Horst Rechner am 19. Juli 2002 Weiterer Teilnehmer am UPP: Clemens Oertel Betreuer: Dipl.-Phys.

Mehr

Java-Servlets. Seminar Webtechnologien SS 2003 Hendrik Steller (steller@inf.fu-berlin.de)

Java-Servlets. Seminar Webtechnologien SS 2003 Hendrik Steller (steller@inf.fu-berlin.de) Java-Servlets Seminar Webtechnologien SS 2003 Hendrik Steller (steller@inf.fu-berlin.de) Inhalt Was sind Servlets? Architektur/Funktionsweise Wie schreibt man einfache Servlets ( CGI-like ), API-Einblicke

Mehr

JavaServer Pages. Seminar Medientechnik Prof. Hußmann Vortrag: Wilhelm Lechner 4. 7. 2003. Übersicht

JavaServer Pages. Seminar Medientechnik Prof. Hußmann Vortrag: Wilhelm Lechner 4. 7. 2003. Übersicht JavaServer Pages Seminar Medientechnik Prof. Hußmann Vortrag: Wilhelm Lechner 4. 7. 2003 Übersicht 1. Einführung 2. Lebenszyklus von JSP Seiten 3. JSP-Sprachelemente 4. Aufruf von Webkomponenten 5. Verwendung

Mehr

Internetapplikationen

Internetapplikationen Internetapplikationen Praxis Eclipse Download von http://www.eclipse.org/downloads Entwicklungsoberfläche für Java Erweiterungsmöglichkeiten über Plugins im Rahmen dieser Übung werden jedoch keine Plugins

Mehr

Datenbanksysteme 2009

Datenbanksysteme 2009 Datenbanksysteme 2009 Vorlesung vom 15.06.09 noch Kapitel 9: Datenbankapplikationen Oliver Vornberger Institut für Informatik Universität Osnabrück Datenbankapplikationen MS Visio MS Access Embedded SQL

Mehr

Platform as a Service (PaaS) 15.01.2010 Prof. Dr. Ch. Reich

Platform as a Service (PaaS) 15.01.2010 Prof. Dr. Ch. Reich Platform as a Service (PaaS) 15.01.2010 Prof. Dr. Ch. Reich Cloud Computing Deployment Typen: Private cloud Besitzt das Unternehmen Community cloud Gemeinsame Nutzung durch Gemeinschaft Public cloud Öffentliche

Mehr

Programmierung von Client/Server- Anwendungen

Programmierung von Client/Server- Anwendungen Programmierung von Client/Server- Anwendungen Komponenten des Web-Containers (Java EE) SoSe2015 Prof. Dr. Andreas Schmietendorf 1 Übersicht zur Vorlesung Entwicklung der Java Enterprise Edition Servlets,

Mehr

6 Web Datenbanken. Web Datenbank Anbindungen: Servlets. Applets. JAVA Server Pages. Sprachen: JAVA, PHP, Python,

6 Web Datenbanken. Web Datenbank Anbindungen: Servlets. Applets. JAVA Server Pages. Sprachen: JAVA, PHP, Python, Vorlesung Datenbanken Wintersemester 2007/08 6 Web Datenbanken Web Datenbank Anbindungen: Servlets Applets JAVA Server Pages Sprachen: JAVA, PHP, Python, Prof. Dr. Dietmar Seipel 481 6.1 Web Datenbank

Mehr

Java Server Pages. Seminar Webtechnologien SS 2003 Hendrik Steller (steller@inf.fu-berlin.de)

Java Server Pages. Seminar Webtechnologien SS 2003 Hendrik Steller (steller@inf.fu-berlin.de) Java Server Pages Seminar Webtechnologien SS 2003 Hendrik Steller (steller@inf.fu-berlin.de) Inhalt Was sind JSPs, Zusammenhang mit Servlets Elemente einer JSP (Direktiven, Skriptelemente, Tags) Hoffentlich:

Mehr

Mul$media im Netz (Online Mul$media) Wintersemester 2014/15. Übung 02 (Nebenfach)

Mul$media im Netz (Online Mul$media) Wintersemester 2014/15. Übung 02 (Nebenfach) Mul$media im Netz (Online Mul$media) Wintersemester 2014/15 Übung 02 (Nebenfach) Mul=media im Netz WS 2014/15 - Übung 2-1 Organiza$on: Language Mul=ple requests for English Slides Tutorial s=ll held in

Mehr

Praktikum aus Softwareentwicklung 2. Java Servlets. Abteilung für Bioinformatik JKU Linz

Praktikum aus Softwareentwicklung 2. Java Servlets. Abteilung für Bioinformatik JKU Linz Java Praktikum aus Softwareentwicklung 2 Java Grundlagen HTTP-Protokoll, Request/Response, Architektur Merkmale, Servlet-Methoden, Lebenszyklus, Sessions Session Tracking API, Cookies, Deployment Deployment

Mehr

Es wird das Struts Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.

Es wird das Struts <html:option> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht. Struts Code Peaces Element Es wird das Struts Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht. Allgemeines Autor: Sascha Wolski Sebastian Hennebrüder

Mehr

Kapitel 12: Datenbanken im Internet

Kapitel 12: Datenbanken im Internet Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Wintersemester 2004/2005 Kapitel 12: Datenbanken im Internet Vorlesung:

Mehr

9.4 Java Servlet technology - Servlets

9.4 Java Servlet technology - Servlets 9.4 Java Servlet technology - Servlets From the [Java T M Servlet Specification, v2.4]: A servlet is a JavaTM technology-based Web component, managed by a container, that generates dynamic content. Like

Mehr

Apache Tomcat. Inhalt. Rechner und Netzarchitektur SS 2003. Einleitung. Architektur

Apache Tomcat. Inhalt. Rechner und Netzarchitektur SS 2003. Einleitung. Architektur Apache Tomcat Rechner und Netzarchitektur SS 2003 Johannes Jabornig Daniel Peintner Inhalt Einleitung Was sind Servlets und JSP Vorteile Architektur Catalina Jasper Konnektoren Installation / Konfiguration

Mehr

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

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

6.9 Java Server Pages

6.9 Java Server Pages DocumentCollection dc = db.ftsearch(abfrage); Document d = dc.getfirstdocument(); while (d!= 0) { String Name = db.gettitle(); out.println(name + ""); d = dc.getnextdocument(); catch (NotesException

Mehr

Web-Entwicklung. Tomcat testen und installieren KAPITEL 9

Web-Entwicklung. Tomcat testen und installieren KAPITEL 9 ch09 Seite 208 Mittwoch, 15. September 2004 11:42 11 KAPITEL 9 Web-Entwicklung Javas Rache am Internet sind JavaServer Pages (JSP) und Servlets und in diesem Kapitel werden wir uns ansehen, wie man diese

Mehr

Java Servlets und Java Server Pages

Java Servlets und Java Server Pages Java Servlets und Java Server Pages JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 Institut für Systemsoftware, Johannes Kepler Universität Linz JavaServlets und JavaServer

Mehr

Java Servlets und Java Server Pages

Java Servlets und Java Server Pages Java Servlets und Java Server Pages JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 Institut für Systemsoftware, Johannes Kepler Universität Linz JavaServlets und JavaServer

Mehr

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

Web-Suche. Eingabeformulare. Websuche: Benutzer-Schnittstelle. Ein einfaches Suchformular. Benutzer-Schnittstelle. Eingabeformulare Web-Suche Benutzer-Schnittstelle HTML unterstützt verschiedene Arten der Programmeingabe in Formularen einschließlich: Textbox Menüs Prüfbox Auswahlbuttons Wenn ein Anwender ein Formular

Mehr

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Enterprise Edition Teil 2. Servlets

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Enterprise Edition Teil 2. Servlets UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Enterprise Edition Teil 2 Servlets el0100 copyright W. G. Spruth, wgs 04-10 Browser

Mehr

Bei einer deutschen Installation muß man den Window Server und pbs aus StartUp in Autostart verlagern sowie die Datei

Bei einer deutschen Installation muß man den Window Server und pbs aus StartUp in Autostart verlagern sowie die Datei 13 WebObjects NeXT hat OPENSTEP auch für Solaris und Windows NT implementiert. Bei Windows NT erhält man ein Laufzeitsystem viele DLL-Module, machd, nmserver, einen Display PostScript Window Server sowie

Mehr

Kapitel 3. Servlet-Grundlagen

Kapitel 3. Servlet-Grundlagen Kapitel 3 Servlet-Grundlagen 78 Kapitel3 Wie bereits in Kapitel 1 erwähnt wurde, sind Servlets Java-Programme, die auf einem Web- oder Anwendungsserver ausgeführt werden. Sie fungieren als Zwischenebene

Mehr

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

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer Applets Belebung von Webseiten Dipl.-Ing. Wolfgang Beer Was sind Applets? Java Klassen, die spezielle Richtlinien befolgen, um: "in Internet-Browsern lauffähig zu sein" Somit ist, komplexere Funktionalität,

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

FH LU JEE Vorlesung SS 2010. Ralf Gitzel ralf_gitzel@hotmail.de

FH LU JEE Vorlesung SS 2010. Ralf Gitzel ralf_gitzel@hotmail.de FH LU JEE Vorlesung SS 2010 Ralf Gitzel ralf_gitzel@hotmail.de 1 Einführung + Organisatorisches Ralf Gitzel ralf_gitzel@hotmail.de 2 Dozent Dr. Ralf Gitzel Promotion an der Universität Mannheim in Wirtschaftsinformatik

Mehr

Grails. Weiterführende Themen zu Internet- und WWW-Technologien. Matthias Springer. 06. Juni 2011

Grails. Weiterführende Themen zu Internet- und WWW-Technologien. Matthias Springer. 06. Juni 2011 Weiterführende Themen zu Internet- und WWW-Technologien 06. Juni 2011 Übersicht 1 Was ist? 2 Übersicht über 3 MVC-Konzept 4 Groovy Beispiele 5 Tutorial: Kleiner Notizblock Web Application Framework Übersicht

Mehr

Kommunikationsnetze. 7. Das World Wide Web 7.4 Client- vs. Server-basierte Techniken für dynamische Webseiten

Kommunikationsnetze. 7. Das World Wide Web 7.4 Client- vs. Server-basierte Techniken für dynamische Webseiten Kommunikationsnetze 7.4 Client- vs. Server-basierte Techniken für dynamische Webseiten Gliederung 1. Einführung 2. Server-basierte Techniken 3. Client-basierte techniken Literatur: A. S. Tanenbaum, Computer

Mehr

PHP-Schwachstellen und deren Ausnutzung

PHP-Schwachstellen und deren Ausnutzung PHP-Schwachstellen und deren Ausnutzung 44. DFN Betriebstagung / 7. Februar 2006 DFN-CERT Services GmbH Jan Kohlrausch / CSIRT Gliederung Grundlagen HTTP und PHP Anatomie typischer Schwachstellen in PHP-Skripten

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

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

Komponenten & Hypermedia Seminar Prof. Dr. Frank Thiesing Struts Java-Framework für Web-Applikationen. Referenten: Fabian Bartelt Jens de Witt

Komponenten & Hypermedia Seminar Prof. Dr. Frank Thiesing Struts Java-Framework für Web-Applikationen. Referenten: Fabian Bartelt Jens de Witt Komponenten & Hypermedia Seminar Prof. Dr. Frank Thiesing Struts Java-Framework für Web-Applikationen Referenten: Fabian Bartelt Jens de Witt - Struts 1 Inhaltsverzeichnis Was ist Struts? Vorkenntnisse

Mehr

Scriptless JSP. Motivation. Expression Language (EL) JSP Standard Tag Library (JSTL)

Scriptless JSP. Motivation. Expression Language (EL) JSP Standard Tag Library (JSTL) Scriptless JSP Motivation Expression Language (EL) JSP Standard Tag Library (JSTL) Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Motivation: EL public class Car { public Engine getengine() {}

Mehr

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel ralf_gitzel@hotmail.de

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel ralf_gitzel@hotmail.de JSP Grundlagen JEE Vorlesung Teil 5 Ralf Gitzel ralf_gitzel@hotmail.de 1 Übersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht JSP Konzept Model-View-Controller mit JSPs JSP Expression Language EL Literale

Mehr