Dynamische Webseiten Java servlets.

Slides:



Advertisements
Ähnliche Präsentationen
Dynamische WEB-Applikationen
Advertisements

M a r c – o l i v e r p a h l Informatik I – Kapitel 7 Klassen und höhere Datentypen Zusammenfassung des Kapitel 7 Küchlin, Weber, Einführung in die Informatik,
der Universität Oldenburg
Objektorientierte Programmierung
Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
1 Kapitel 9: Datenbankapplikationen. 2 Datenbankapplikationen MS Access Embedded SQL JDBC Application JDBC Applet Java Servlet Java Server Pages Cold.
1 Datenbankapplikationen 9.1MS Visio 9.2MS Access 9.3Embedded SQL 9.4JDBC 9.5Cold Fusion 9.6PHP.
Software Engineering Praktikum SS 2003
Software Engineering Praktikum WS 2002/03
Zusammenfassung des Kapitels 8
Internet-Datenbanken
Programmierkurs Java WS 98/99 Vorlesung 15 Dietrich Boles 17/02/99Seite 1 Programmierkurs Java Vorlesung im WS 1998/1999 am FB Informatik der Universität.
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik F Verteilte Software - Java.
Verteilte Software - Java - Prozedurale Programmierung 1
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Tomcat Web-Server installieren
Internetzugriff mit Strings und Streams
JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding.
Java 2 Enterprise Edition (J2EE)
Internet-Datenbanken Grundlagen des WWW HTML HTTP Web-Anbindung von Datenbanken Servlets JSP JDBC XML Datenmodell Schemabeschreibungssprachen Anfragesprachen.
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
IF-ELSE-IF-Ketten Weiter mit PP..
Internet-Technologien und Java
Internet-Technologien und Java. Beispiel: Im Browser wird diese Zeile eingegeben. Wie nennt man diese eingegebene Zeile.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
M a r c – o l i v e r p a h l Die ObjektOrientierte Mühle Das Beispiel soll noch einmal das Konzept der Objektorientiertheit erläutern. Dabei werden außerdem.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 9 IO – Streams in Java Sommersemester 2003 Lars Bernard.
Dynamische Webseiten mit PHP Oder: LAMP - The open way.
Dynamische Webseiten mit PHP
Web-Anwendungen.
Web-Anwendungen.
Publikation von XML-Daten mit XSQL Pages. © Prof. T. Kudraß, HTWK Leipzig Vorteile von XSQL Pages einfache Generierung von XML-Dokumenten auf der Basis.
Objektorientierte Programmierung JDK-Klassenbibliothek
PRJ 2007/1 Stefan Dissmann Motivation Problem: Benutztes Objekt kennt den Kontext seiner Nutzung nicht. Daher kann es in besonderen Situationen keine Entscheidung.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
Filiale pea09 Die Einbindung der MySQL-Datenbank in das Servlet.
ansprechendes Design Übersichtlichkeit simple(selbsterklärende) Navigation unsere Credos : design programming Ltd.
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
DVG Einführung in Java1 Einführung in JAVA.
JDBC EDV JDBC.
Kapitel 8: Web-Anwendungen mit SQL und PHP
Java in 9 Folien Besser: Online-Buch Go to Java 2.
© 2005 Pohlig – Taulien: Die Matheamatik-GUI als Applet Come Together 1 April 2005 Was ist ein Applet Ein Applet ist ein Javaprogramm, das die VM benutzt,
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
Einführung Servlets/JSPs
Wir bauen uns eine Webapplikation!
Servlet III Java Webanwendung Webcontainer Web.xml
OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt.
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
Parallel Programming Thread Synchronization. Heute 1. Lösung zu Assignment 2 2. Erstellen und Starten von Threads in Java 3. Das synchronized Schlüsselwort.
Exception Handling in Java
Praxis der Internet-Programmierung
Praxis der Internet-Programmierung
XML IV: Cocoon 2.
Servlets Servlets und relevantes API Servlets & SQL via JDBC Implementierungs - Spezifika Architektur Überblick Vertikaler Prototyp / Spezifikation.
Optimale Ursprungsgerade
2002 XML 10.1XML I (Parsing) 17.1XML II (XLST,XPATH) (keinPraktikum) 24.1XML III FOP 31.1Cocoon2, XSP 7.2Struts, Turbine, Velocity 14.2Testat / Evaluation.
Learning By Doing Konstruktoren Gleicher Name wie die Klasse Zur Initialisierung des Objekts, insbesondere mit Parametern Wir immer bei der Objekterzeugung.
Ausgangslage Einführung Web-basierte Anwendungsarchitekturen
Datenbankanbindung mit
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Java-Applets und URLs APP Philip Graf, Andreas Bößl.
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
Java 2 Enterprise Edition (J2EE) Sascha Baumeister Software Architect Specification Lead JSR086 IBM Deutschland Entwicklung GmbH
1 Servlets Stephan Baldes. 2 Was ist ein Servlet? S E R V L E T = Eine auf Java-Technologie basierte Web-Komponente, die von einem Container.
OOP mit Java Oder: Java in 5 Tagen. 1. Tag Klassen und Methoden Hello World in Variationen Von Menschen und Geschlechtern Horden (Schlange stehen)
Oracle ADF FacesSeite 1 Oracle ADF Faces OPITZ CONSULTING Oracles Implementierung der JavaServer Faces Spezifikation.
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
 Präsentation transkript:

Dynamische Webseiten Java servlets

Servlet- Engine mit eingebautem Webserver Architektur Browser Webserver Servlet- Engine Servlet Browser Servlet- Engine mit eingebautem Webserver Servlet

Genauer ... Quelle: http://www.research.ibm.com/journal/sj/373/bayeh1.gif

Servlet Engines Java Webserver (SUN) Websphere (IBM) Jserv (Apache) Referenzimplementierung Websphere (IBM) Application Server komplex Load Balancing .... Jserv (Apache) Apache module + Servlet Engine Tomcat (Apache) standalone oder Apache module einfach und schnell und viele andere

Servlet javax.servlet javax.servlet.http Java Klasse generisch http abgeleitet von HttpServlet keine main() Methode Überschreiben von doGet() und/oder doPost() ServletRequest Parameter, input Stream ServletResponse Session, outputStream

Lebenszyklus eines Servlets Servlet wird vom Anwender kompiliert beim ersten Aufruf von der engine geladen Klasse wird dynamisch geladen bei jedem weiteren Aufruf wird nur die entsprechende Methode ausgeführt genauer: ausgeführt wird service() die doHeader() ... ausführt und je nach Methode doGet() oder doPost() kaum Overhead

Hello World mit GET import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException // Was liefern wir zurueck ? // Hier: ASCII Text, kein HTML response.setContentType("text/plain"); // Output liefern wir ueber "normale" Java IO PrintWriter pw = response.getWriter(); pw.println("Hello World"); pw.close(); }

Hello World mit POST import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException // Was liefern wir zurueck ? // Hier: ASCII Text, kein HTML response.setContentType("text/plain"); // Output liefern wir ueber "normale" Java IO PrintWriter pw = response.getWriter(); pw.println("Hello World"); pw.close(); }

Hello World beide ? import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException // Was liefern wir zurueck ? // Hier: ASCII Text, kein HTML response.setContentType("text/plain"); // Output liefern wir ueber "normale" Java IO PrintWriter pw = response.getWriter(); pw.println("Hello World"); pw.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException doGet(request,response);

Initialisierung Zur Initialisierung kann die init-Methode überschrieben werden public void init(ServletConfig conf) throws ServletException { super.init(conf); count = 0; } z.B. Verbindung zur DB herstellen evtl. schlechte Idee (Fehlerbehandlung) Verbindungen zu factories,... aufsetzen Konfigurationsinformationen lesen ...

Parameter HttpServletRequest.getParameter(name) String par = request.getParameter("ID"); liefert den Wert des Parameters (hier ID) als String Ggf. Konvertierung, z.B. int value = Integer.parseInt(par) double value = Double.parseDouble(par) bei GET und POST Problem: Parameter mit Sonderzeichen Lösung: URL-encoding z.B. ' ' (blank) als +

Beispiel: Parameter public class HelloWorldPar extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException // Was liefern wir zurueck ? // Hier: ASCII Text, kein HTML response.setContentType("text/plain"); String par = request.getParameter("ID"); // Output liefern wir ueber "normale" Java IO PrintWriter pw = response.getWriter(); pw.println("Hello World"); pw.println(par); pw.close(); }

Session Wie werden Informationen von einer Seite zur anderen transportiert ? etwa Benutzername, DB Verbindung,... z.B. Cookies, URL-rewriting,... manuell oder automatisch: Session Objekt HttpServletRequest.getSession() liefert HttpSession Methoden getAttribute(name)/setAttribute(name,Wert) liefert/setzt beliebiges Object cast nötig HttpSession session = request.getSession(); count =(Integer)session.getAttribute("COUNT");

Beispiel: Session public class HelloWorldSession extends HttpServlet { private Integer count; public void init(ServletConfig conf) throws ServletException { super.init(conf); count = new Integer(0); } .... pw.println("Hello World"); HttpSession session = request.getSession(); count = (Integer) session.getAttribute("COUNT"); if (count == null) pw.println(count); count=new Integer(count.intValue()+1); session.setAttribute("COUNT",count);

Header modifizieren public class Uhr extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException // Was liefern wir zurueck ? response.setHeader("Refresh","5"); response.setContentType("text/html"); // Output liefern wir ueber "normale" Java IO PrintWriter pw = response.getWriter(); Date D = new Date(); pw.println("<HTML><BODY><h1>"); pw.println(D); pw.println("</h1></BODY></HTML>"); pw.close(); }

Zugriff auf Datenbank public class TestEmpServlet extends HttpServlet { ... out.println("<html><body>"); try { Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection conn = DriverManager.getConnection ("jdbc:mysql://localhost/ba","till","haenisch"); Statement stmt = conn.createStatement (); ResultSet rset = stmt.executeQuery ( "select empno,ename from EMP"); while (rset.next()) { out.println(rset.getInt(1) + " " + rset.getString(2) + "<br>"); } catch (Exception e) { out.println(e.getMessage());