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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

JSP - Java Server Pages

JSP - Java Server Pages JSP - Java Server Pages 1 Java Server Pages Grundlagen Syntax, Lebenszyklus, Anwendung Eingebetteter Java-Code, Fehlerbehandlung, Java Beans Formularverarbeitung, benutzerdef. Tags, Sonstiges Alternativen

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

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

Zu diesem Buch gibt es eine Web-Seite: http://www.informatik.fh-wiesbaden.de/ turau/jsp/index.html

Zu diesem Buch gibt es eine Web-Seite: http://www.informatik.fh-wiesbaden.de/ turau/jsp/index.html v Vorwort Die Entwicklung der Programmiersprache Java wurde Anfang der neunziger Jahre von Sun Microsystems begonnen. Die breite Öffentlichkeit wurde aber erst 1994 auf Java aufmerksam, als die erste große

Mehr

Datenbanksysteme 2015

Datenbanksysteme 2015 Datenbanksysteme 2015 noch Kapitel 09: Datenbankapplikationen Oliver Vornberger Institut für Informatik Universität Osnabrück Datenbankapplikationen MS Visio MS Access Embedded SQL im C-Programm JDBC /

Mehr

FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen

FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen Sommersemester 2015 Michael Theis, Lehrbeauftragter Sommersemester 2015 Michael Theis, Lehrbeauftragter 2 Werden als Web Application

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

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

Softwareentwicklung mit JAVA EE

Softwareentwicklung mit JAVA EE Softwareentwicklung mit JAVA EE Beispiel Framework: Struts Was ist? Open Source Framework zum Bau von Web Applikationen Home Page http://jakarta.apache.org/struts Teil des Apache Jakarta Project Unterstützt

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

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

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

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

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

Web-Services Implementierung

Web-Services Implementierung Web-Services Implementierung Praktikum Informationsintegration 8.11.2005 Agenda Aktueller Stand / Abgabe Implementierung Wie geht das mit Java und Tomcat? Service Client 2 Abgabe Teil 1 Ein paar Zahlen

Mehr

Technische Universität Dresden Prof. Hußmann Softwarekomponenten. 3.2 Web-Komponenten mit Java

Technische Universität Dresden Prof. Hußmann Softwarekomponenten. 3.2 Web-Komponenten mit Java Gliederung 1. Software-Komponenten: Grundlegende Begriffe 2. Systematischer Entwicklungsprozess für Komponenten-Software mit UML 3. Java-Komponenten-Technologien 3.1 JavaBeans-Technologie 3.2 Web-Komponenten

Mehr

Java Servlets Eine Einführung

Java Servlets Eine Einführung Java Servlets Eine Einführung Angefertigt von im Proseminar Technologien zur Entwicklung von Webanwendungen Lehrstuhl III für Informatik Sommersemester 2002 Inhaltsverzeichnis 1 MOTIVATION...1 1.1 EINFÜHRUNG...1

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

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

Middleware. Host. Versuch einer Einleitung. dumme Terminals stellen Ausgaben dar und nehmen Eingaben an

Middleware. Host. Versuch einer Einleitung. dumme Terminals stellen Ausgaben dar und nehmen Eingaben an Middleware Versuch einer Einleitung Host dumme Terminals stellen Ausgaben dar und nehmen Eingaben an Mainframe enthält vollständige Anwendung Typ. COBOL, C Mainframe contd.! Nachteile! Mainframe ist teuer

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

Java Server Pages - Praxis

Java Server Pages - Praxis In diesem Kapitel: Einleitung Vorteile von JSP JSP versus ASP JSP oder Servlets? JSP Architektur JSP Access Modelle JSP Syntax Grundlagen Steuerbefehle / Directives Seitenformattierung include Directives

Mehr

Programmieren 2 (Prof. Hasbargen) Klausur

Programmieren 2 (Prof. Hasbargen) Klausur Programmieren 2 (Prof. Hasbargen) 1 Klausur Aufgabe 1 (10 Punkte) Dynamisierung von HTML-Seiten HTML-Seiten sind eine gängige Art und Weise, Informationen darzustellen. Nennen Sie die Gründe, welche Vorteile

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

Kapitel WT:IV. IV. Server-Technologien

Kapitel WT:IV. IV. Server-Technologien Kapitel WT:IV IV. Server-Technologien Web-Server Common Gateway Interface CGI Java Servlet Java Server Pages JSP Active Server Pages ASP Exkurs: reguläre Ausdrücke PHP Hypertext Preprocessor Perl, Python,

Mehr

FileMaker und PHP Workshop

FileMaker und PHP Workshop FileMaker und PHP Workshop 2-stündiger Ausschnitt aus einem 3-tägigen Schulungsprogramm Bernhard Schulz FileMaker Konferenz 2010 / Zürich Ziel des Workshops Kennenlernen von PHP Möglichkeiten von FileMaker

Mehr

Applications Applets (eingeschränkte Rechte)

Applications Applets (eingeschränkte Rechte) 1 Arten von Java-Programmen Man unterscheidet 2 verschiedene Arten von Java-Programmen: Applications Applets (eingeschränkte Rechte) Erstere sind eigenständige Programme. Letztere sind "kleine" Programme,

Mehr

Dynamische Webseiten

Dynamische Webseiten Dynamische Webseiten Seminar Medientechnik 30.06.2003 Dynamische Webseiten 1 Inhalt Allgemeine Funktionsweise eines Webservers Grundgedanke von dynamischen Webseiten Einschub: Dynamische Seitenerzeugung

Mehr

Active Server Pages. Internetanbindung von Datenbanken. Gliederung. Einführung in ASP. Sessions mit ASP. Datenbankanbindung mit ASP ASP-1

Active Server Pages. Internetanbindung von Datenbanken. Gliederung. Einführung in ASP. Sessions mit ASP. Datenbankanbindung mit ASP ASP-1 Internetanbindung von Datenbanken Active Server Pages ASP-1 Gliederung Einführung in ASP Sessions mit ASP Datenbankanbindung mit ASP Brunner, Fromm, Huppert ASP-2 Einführung in ASP ASP-3 Entwicklung des

Mehr

Ablauf Unit2. Walkthrough

Ablauf Unit2. Walkthrough Ablauf Unit2 Vertiefendes Uebungsprojekt - SQL II Gerhard Wohlgenannt Test Vorstellung der Arbeitsumgebung (Software, Locations) Walkthrough Gruppeneinteilung + Themenvergabe Vorstellung der Arbeitsumgebung

Mehr

SASIII: Entwicklung einer Java/JSF Applikation

SASIII: Entwicklung einer Java/JSF Applikation - Diplomarbeit - SASIII: Entwicklung einer Java/JSF Applikation Serverarchitektur bei der Entwicklung der Schuladministrationssoftware SASIII unter Einsatz von Apache MyFaces Verfasser: Jakob Korherr Frühwärts

Mehr

Sicherheit. letzten beiden Punkte typischerweise durch Verschlüsselung realisiert. Komponentenbasierte Software Entwicklung. Prof. Dr.

Sicherheit. letzten beiden Punkte typischerweise durch Verschlüsselung realisiert. Komponentenbasierte Software Entwicklung. Prof. Dr. Sicherheit Vier Aufgaben Authentifizierung: Nutzer erkennen; klassisch über Name und Passwort Autorisierung: Nutzer darf nur bestimmte Aktionen durchführen, klassisch über Rechte Rollen System Vertraulichkeit:

Mehr

Ablauf. Wichtige Termine. Vertiefendes Übungsprojekt - SQL II

Ablauf. Wichtige Termine. Vertiefendes Übungsprojekt - SQL II Ablauf Wichtige Termine Ablauf der Lehrveranstaltung Vorstellung des Projektthemas Projektgruppen Vorstellung der Arbeitsumgebung (Software, Locations) Walkthrough Datenbankentwurf Formulare PHP Security

Mehr

Web-Programmierung (WPR)

Web-Programmierung (WPR) Web-Programmierung (WPR) Vorlesung VIII. Common Gateway Interface(CGI) & PHP mailto:wpr@gruner.org 1 12 Common Gateway Interface Von allen Webservern unterstützt Anzubindende Programme => Gateway zu bestehenden

Mehr

Schritt 1: Java im Web

Schritt 1: Java im Web Prof. Dr. Th. Letschert FB MNI JEE Schritt 1: Java im Web Voraussetzungen In diesem Kurs geht es um serverseitige Java Technologien. Eine wichtige, wenn auch nicht die einzige Aufgabe eines Servers ist

Mehr

Internetanbindung von Datenbanken

Internetanbindung von Datenbanken Internetanbindung von Datenbanken http://galahad.informatik.fh-kl.de/~miesel/index.html PHP -1 Gliederung Einführung PHP3 Datenbankanbindung mit PHP3 Sicherheitsprobleme Realisierung mit PHP3 Probleme

Mehr

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 9c: Datenbankapplikationen Architektur einer Web-Applikation mit Servlets, JSPs und JavaBeans

Mehr

Web-Anwendungsentwicklung mit dem Delivery Server

Web-Anwendungsentwicklung mit dem Delivery Server Web-Anwendungsentwicklung mit dem Delivery Server Java-Framework auf Basis der Open API Bernfried Howe, Webertise Consulting GmbH WEBertise Consulting Dipl. Informatiker (Wirtschaftsinformatik) 2001-2010

Mehr

Java 2 Enterprise Edition. Franz Lackinger Java Enterprise Architect Sun Microsystems GesmbH mailto:franz.lackinger@sun.com

Java 2 Enterprise Edition. Franz Lackinger Java Enterprise Architect Sun Microsystems GesmbH mailto:franz.lackinger@sun.com Java 2 Enterprise Edition Franz Lackinger Java Enterprise Architect Sun Microsystems GesmbH mailto:franz.lackinger@sun.com 1 Java 2 Enterprise Edition (J2EE) Overview About Components & Containers Deployment

Mehr

01.02.2010 Betreuer T. Friedrich

01.02.2010 Betreuer T. Friedrich Fachoberschule Wirtschaft - Schwerpunkt Informatik JavaServer Pages Christoph Süsens, Matthias Holdorf 01.02.2010 Betreuer T. Friedrich Facharbeit: - Java Server Pages Erklärung Wir versichern, dass wir

Mehr

Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz von Web Services:

Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz von Web Services: 0BBA Karlsruhe, Vorlesung Programmieren, Web Services 1BAufgabe 1 Tomcat um das AXIS-Framework erweitern : Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz

Mehr

Codegeneratoren mit Xtend2. 11.04.2012, A. Arnold

Codegeneratoren mit Xtend2. 11.04.2012, A. Arnold Codegeneratoren mit Xtend2 11.04.2012, A. Arnold Copyright 2012 anderscore GmbH Inhalt 1. Was ist Xtend2? 2. Xtend2 Konzepte 3. Hands On! 3 4 8 20 2 Was ist Xtend2? Funktionale, objektorientierte Sprache

Mehr

B7. Web-Programmierung mit Java

B7. Web-Programmierung mit Java B7. Web-Programmierung mit Java B7.1 Applets B7.2 Servlets B7.3 Java Server Pages (JSP) Literatur: Siehe http://java.sun.com/applets Ludwig-Maximilians-Universität München Prof. Hußmann Medientechnik B7-1

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

Grundlagen der Programmierung UE

Grundlagen der Programmierung UE Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, R. Wolfinger 1 Vortragende Dr. Herbert Praehofer (G1 u. G2) Mag. Reinhard Wolfinger (G3 u. G4) Institute for System Software

Mehr

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer) Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und

Mehr

B7. Web-Programmierung mit Java

B7. Web-Programmierung mit Java B7. Web-Programmierung mit Java B7.1 Applets B7.2 Servlets B7.3 Java Server Pages (JSP) Literatur: Siehe http://java.sun.com/applets Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 -

Mehr

Tutorial Job Implementierung

Tutorial Job Implementierung Software- und Organisations-Service GmbH JOB SCHEDULER Tutorial Job Implementierung Technische Dokumentation 29.November 2004 Software- und Organisations-Service GmbH Giesebrechtstr. 15 D-10629 Berlin

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

Bridging the Gap between the Enterprise and You. Who s the JBoss now?

Bridging the Gap between the Enterprise and You. Who s the JBoss now? or Who s the JBoss now? Patrick Hof (patrick.hof@redteam-pentesting.de) Jens Liebchen (jens.liebchen@redteam-pentesting.de) RedTeam Pentesting GmbH http://www.redteam-pentesting.de FrOSCon 2009 22./23.

Mehr

Tomcat Konfiguration und Administration

Tomcat Konfiguration und Administration Tomcat Konfiguration und Administration Seminarunterlage Version: 8.01 Version 8.01 vom 4. Februar 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

Entwicklung einer mobilen webbasierten Anwendung mit Oracle9i Lite Web-to-Go

Entwicklung einer mobilen webbasierten Anwendung mit Oracle9i Lite Web-to-Go Thema Autor Entwicklung einer mobilen webbasierten Anwendung mit Oracle9i Lite Web-to-Go Christian Antognini (christian.antognini@trivadis.com) Art der Information Produktübersicht (Mai 2002) Quelle Trivadis

Mehr

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

:HE'DWHQEDQN$QELQGXQJ PLW-DYD6HUYOHWVEDVLHUHQG DXI$SDFKH-6HUY2UDFOHL DNDGLD,QIRUPDWLRQ 7HFKQRORJ\ :HE'DWHQEDQN$QELQGXQJ PLW-DYD6HUYOHWVEDVLHUHQG DXI$SDFKH-6HUY2UDFOHL Authoren: Christoph Gächter / Martin Zahn Copyright 1999 Akadia AG All rights reserved $NDGLD$* Information

Mehr

Benutzung von Eclipse zur Entwicklung von Java EE 5 Anwendungen mit dem JBoss Application Server

Benutzung von Eclipse zur Entwicklung von Java EE 5 Anwendungen mit dem JBoss Application Server Benutzung von Eclipse zur Entwicklung von Java EE 5 Anwendungen mit dem JBoss Application Server Starten und Auswahl des Workspaces Starten Sie Eclipse als die Entwicklungsumgebung. Wählen Sie als Workspace

Mehr

Dynamische Webanwendungen

Dynamische Webanwendungen Dynamische Webanwendungen Mohamed Said Seminar Moderne Informatik Universität Dortmund SS 2003 Mohamed Said / 2003-05-30 1 Überblick Einleitung (Konzept) Client-seitiges Skripting mit JavaScript CGI Server-seitiges

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten

09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten Aktuelle Themen der Wirtschaftsinformatik Zusammenfassung 09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten 1 Serverseitige Webprogrammierung

Mehr

Sicherheit in Webanwendungen CrossSite, Session und SQL

Sicherheit in Webanwendungen CrossSite, Session und SQL Sicherheit in Webanwendungen CrossSite, Session und SQL Angriffstechniken und Abwehrmaßnahmen Mario Klump Die Cross-Site -Familie Die Cross-Site-Arten Cross-Site-Scripting (CSS/XSS) Cross-Site-Request-Forgery

Mehr

Multimedia im Netz Wintersemester 2011/12

Multimedia im Netz Wintersemester 2011/12 Multimedia im Netz Wintersemester 2011/12 Übung 01 Betreuer: Verantwortlicher Professor: Sebastian Löhmann Prof. Dr. Heinrich Hussmann Organisatorisches 26.10.2011 MMN Übung 01 2 Inhalte der Übungen Vertiefung

Mehr

Netzwerkprogrammierung

Netzwerkprogrammierung Netzwerkprogrammierung 1 Netzwerkverbindungen Das Entwurfsziel von Java war: Einfache Verbindung zwischen Rechnern und SetBox-Systemen. Das Standardpaket java.net hilft bei allen Netzwerkverbindungen.

Mehr

Aktuelle Sicherheitsprobleme im Internet

Aktuelle Sicherheitsprobleme im Internet Herbst 2014 Aktuelle Sicherheitsprobleme im Internet Wirtschaftsinformatik: 5. Semester Dozenten: Rainer Telesko / Martin Hüsler Fachhochschule Nordwestschweiz FHNW / Rainer Telesko - Martin Hüsler 1 Inhalt

Mehr

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

easylearn Webservice lsessionservice Interface für Single Sign On (SSO) - 1 - easylearn Webservice lsessionservice Interface für Single Sign On (SSO) SDN AG, Solution Development Network Dezember 2008 - 2 - Inhaltsverzeichnis Inhaltsverzeichnis... 2 easylearn Webservice lsessionservice...

Mehr

Netzwerkprogrammierung mit Java Part2

Netzwerkprogrammierung mit Java Part2 1 Netzwerkprogrammierung mit Java Part2 HTML (ultra Kurzfassung) Titel der

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr