Internet-Datenbanken

Slides:



Advertisements
Ähnliche Präsentationen
Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
Advertisements

1 Kapitel 9: Datenbankapplikationen. 2 Datenbankapplikationen MS Access Embedded SQL JDBC Application JDBC Applet Java Servlet Java Server Pages Cold.
Software Engineering Praktikum SS 2003
Software Engineering Praktikum WS 2002/03
XML-Datenmodellierung und Web-Services XML Datenmodell Schemabeschreibungssprachen Anfragesprachen: XPath und XQuery Web-Services Überblick WSDL UDDI SOAP.
Tomcat Web-Server installieren
Internetzugriff mit Strings und Streams
Java 2 Enterprise Edition (J2EE)
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
Ausnahmen HS Merseburg (FH) WS 06/07.
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 SQLJ Richard Göbel. FH-Hof SQLJ - Idee Erweiterung von Java um SQL Die Verwendung von SQL-Anweisungen innerhalb einer Programmiersprache wird vereinfacht.
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
Internet-Technologien und Java
Ein Beispiel in Java.
Internet-Technologien und Java. Beispiel: Im Browser wird diese Zeile eingegeben. Wie nennt man diese eingegebene Zeile.
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
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.
Dynamische Webseiten mit PHP Oder: LAMP - The open way.
Dynamische Webseiten mit PHP
Dynamische Webseiten Java servlets.
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Datenbankanwendungen mit Java und JDBC
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Publikation von XML-Daten mit XSQL Pages. © Prof. T. Kudraß, HTWK Leipzig Vorteile von XSQL Pages einfache Generierung von XML-Dokumenten auf der Basis.
Hassan Bidani Jallal Alami Rahmouni FH Wiesbaden
JDBC Konzepte Realisierung von Zugriffen
Java Server Pages Implementierung eines Web-Service-Clients Pea 13: Maik Opitz, Martin Melle, Philipp Hake.
Filiale pea09 Die Einbindung der MySQL-Datenbank in das Servlet.
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
Packages Vortrag : Cornelia Hardt 23. November 1999.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
JDBC EDV JDBC.
Kapitel 8: Web-Anwendungen mit SQL und PHP
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Cursor-Konzept u Zugriff auf Mengen von Ergebnistupeln u In SQLJ Iteratoren u Vergleichbar.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Systementwicklungsprojekt:
JDBC: JAVA Database Connectivity
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Einführung Servlets/JSPs
Wir bauen uns eine Webapplikation!
Learning By Doing Thema 1: Dynamische Webseiten und Online Datenbanken (Jarka Arnold) Thema 2: Simulationen, Sound, Schnittstellen (Aegidius Plüss) Thema.
Applets Java für’s Web.
Seminar Internet - Technologie
PPS-Design einer eigenen WWW-Homepage SS 2003 Applets.
Learning By Doing TCP/IP Netzwerke mit TCP/IP Das Internet verwendet weitgehend das rund 30-jährige TCP/IP-Protokoll (TCP: Transmission Control Protocol,
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Anwendungen Servlet II Formular Auswertung Zähler
Servlets Servlets und relevantes API Servlets & SQL via JDBC Implementierungs - Spezifika Architektur Überblick Vertikaler Prototyp / Spezifikation.
Programmierprojekt Java Server Pages
CuP - Java Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
Einführung in PHP 5.
Datenbankanbindung mit
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Datenbanken im Web 1.
Java-Applets und URLs APP Philip Graf, Andreas Bößl.
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.
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:

Internet-Datenbanken Grundlagen des WWW HTML HTTP Web-Anbindung von Datenbanken Servlets JSP JDBC

Literatur: Kapitel 18 aus ...

HTML-Grundlagen <HTML> <HEAD> <TITLE>Gesamtes Vorlesungs-Verzeichnis</TITLE> </HEAD> <BODY> <H1>Die Professoren der Universität</H1> <UL> <LI> Prof. Augustinus <LI> 5022: Glaube und Wissen (mit 2SWS) </UL> <LI> Prof. Curie <LI> Prof. Kant <LI> 5001: Grundzüge (mit 4SWS) <LI> 4630: Die 3 Kritiken (mit 4SWS) ... </BODY> </HTML>

Illustration der hierarchischen Struktur

Adressierung im Web URLs: Uniform Resource Locators http://www.db.fmi.uni-passau.de/ publications/books/DBMSeinf/index.phtml Entspricht physischen Objektidentifikatoren Speicherort ist in den Identifikator „ein-codiert“ Deshalb gibt es so viele Verletzungen der referentiellen Integrität im WWW 40 4-Fehler (busted link) URNs: Uniform Resource Names Logische Identifikatoren Unabhängig vom Speicherort des Dokuments URN Name Server nötig für die Umsetzung auf Adressen URI: URLs  URNs

URN-Transformation

Client/Server-Architektur des WWW

Web-Anbindung von Datenbanken via Servlets

Architektur der DB-Anbindung mittels Applet Nicht-privilegierte Applets werden in Sandbox ausgeführt und können aus Sicherheitsgründen nur mit „ihrem“ Webserver kommunizieren Browser Applet Geht nur für Privilegierte Applets (innerhalb Intranets) Applet Webserver Proxy File-Server DBMS

VorlesungsVerzeichnis.html <HTML> <HEAD> <TITLE>Vorlesungs-Verzeichnis mittels Servlet</TITLE> </HEAD> <BODY> <CENTER> <FORM ACTION="http://www.db.fmi.uni-passau.de/servlets-buch/VrlVrz" METHOD="GET"> Bitte geben Sie den Namen einer Professorin bzw. eines Professors ein:<BR> <INPUT TYPE=TEXT NAME="professor_name"></INPUT><BR> <INPUT TYPE=SUBMIT VALUE="Abfrage starten"></INPUT> </FORM> </CENTER> </BODY> </HTML>

Browser-Darstellung Die generierte URL enthält einen sogenannten Query String http://www.db.fmi.uni-passau.de/ servlets-buch/VrlVrz?professor_name=Sokrates Wenn mehrere Parameter übergeben werden müssen, werden sie mit & getrennt hintereinaqndergefügt

Web-Anbindung von Datenbanken via Servlets

Anbindung einer Datenbank via JDBC an das Servlet

import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.sql.*; import java.text.*; public class VrlVrz extends HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection conn = null; Statement stmt = null; ResultSet rs = null; response.setContentType("text/html"); PrintWriter out = response.getWriter(); try { Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection( "jdbc:oracle:oci8:@lsintern-db", "nobody", "Passwort"); stmt = conn.createStatement(); JDBC-Datenbank- Verbindungsaufbau

Seite aus dem Anfrageergebnis String query = "select v.VorlNr, v.Titel, v.SWS " + "from Vorlesungen v, Professoren p " + "where v.gelesenVon = p.PersNr and p.Name = '" + request.getParameter("professor_name") + "'"; rs = stmt.executeQuery(query); out.println("<HTML>"); out.println("<HEAD> <TITLE> Vorlesungen von Prof. " + request.getParameter("professor_name") + "</TITLE></HEAD>"); out.println("<BODY>"); out.println("<H1> Vorlesungen von Prof. " + request.getParameter("professor_name") +": </H1>"); out.println("<UL>"); Generierung der HTML- Seite aus dem Anfrageergebnis

out.println("<LI>" + rs.getInt("VorlNr") + while (rs.next()) out.println("<LI>" + rs.getInt("VorlNr") + ": " + rs.getString("Titel") + " (mit " + rs.getInt("SWS") + " SWS)"); out.println("</UL>"); out.println("</Body> </HTML>"); } catch(ClassNotFoundException e) { out.println("Datenbanktreiber nicht gefunden:" + e.getMessage()); catch (SQLException e) { out.println("SQLException: " + e.getMessage()); finally { try { if (conn != null) conn.close(); } catch (SQLException ignorieren) {} Ausnahme- Behandlung

Antwortseite (Browser-Darstellung)

Verwendung von POST statt GET <FORM ACTION="http://www.db.fmi.uni-passau.de/servlets-buch/VrlVrz" METHOD="POST"> Bitte geben Sie den Namen einer Professorin bzw. eines Professors ein:<BR> <INPUT TYPE=TEXT NAME="professor_name"> </INPUT> <BR> <INPUT TYPE=SUBMIT VALUE="Abfrage starten"> </INPUT> </FORM>

Verwendung von POST statt GET Weiterhin muß das Servlet natürlich die Methode doPost implementieren. Eine Möglichkeit besteht darin, daß das Servlet beide Methoden, also doGet und doPost, auf die gleiche Weise realisiert. Dann könnte man einfach zusätzlich folgende Methode der Klasse VrlVrz hinzufügen: public void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }

Wiederverwendung des Servlets <HTML> <HEAD> <TITLE>Gesamtes Vorlesungs-Verzeichnis mittels Servlet</TITLE> </HEAD> <BODY> <H1> Die Professoren der Universität </H1> <UL> <LI> Prof. Augustinus <UL> <LI> <A HREF="../servlets-buch/VrlVrz?professor_name=Augustinus"> Vorlesungen </A> </UL> <LI> Prof. Curie <UL> <LI> <A HREF="../servlets-buch/VrlVrz?professor_name=Curie"> ... <LI> Prof. Sokrates <UL> <LI> <A HREF="../servlets-buch/VrlVrz?professor_name=Sokrates"> </UL> </BODY> </HTML>

Browser-Darstellung

Wenn man auf Vorlesungen von Kant geklickt hat ...

Java Server Pages (JSPs) Active Server Pages (ASPs)

Java-Beans zur Generierung der dynamischen Inhalte

JSP-Seite <%@ page import="jspdemo.VorlesungenBean" %> <jsp:useBean id="mybean" class="jspdemo.VorlesungenBean" scope="application" /> <HTML> <HEAD> <TITLE>Gesamtes Vorlesungs-Verzeichnis mittels Java Server Page </TITLE> </HEAD> <BODY> <H1>Die Professoren der Universität</H1> <UL> <LI> Prof. Augustinus <%= mybean.generiereVorlListe("Augustinus") %> <LI> Prof. Curie <%= mybean.generiereVorlListe("Curie") %> </UL> </BODY> </HTML>

JSP-Tags <% @page Attribute der Direktive> Mit der page-Direktive kann der Übersetzungsvorgang der JSP-Seiten mittels unterschiedlicher Attribute gesteuert werden. Hierunter fällt auch das Attribut import für die Inkludierung von Java-Packages, die für die Übersetzung des in der JSP-Seite enthaltenen Java-Codes benötigt werden. In unserem Beispiel wird das Package für die JDBC-Funktionalität java.sql.* inkludiert. <%! Deklaration %> Von diesem Tag eingeschlossen kann man z.B. eine Java-Operation definieren, die dann später in der Seite (mehrfach) verwendet wird. Dies ist in unserem Beispiel geschehen: Dort wurde die String-Funktion generiereVorlListe deklariert und später mehrfach aufgerufen.

JSP-Tags <%= Ausdruck %> An die Stelle des Tags wird die textuelle Ausgabe des Ausdrucks substituiert. Es handelt sich hierbei um eine vereinfachende Konvention, da das obige Konstrukt äquivalent zu folgendem ist: <% out.print(Ausdruck) %>. <% Java-Code-Fragment %> umschließt Java-Code, der ausgeführt wird. Durch Schreiben auf das implizit zur Verfügung stehende Objekt out kann der Code auch Ausgaben erzeugen, die in das HTML-Dokument an dieser Stelle eingefügt werden. <%-- Kommentar --%> Hiermit wird ein Kommentar abgegrenzt. Dieser Kommentar wird nicht in das erzeugte HTML-Dokument, das letztendlich an den Klienten (Web-Browser) ausgeliefert wird, übernommen.

Die Java VorlesungenBean

Wiederverwendung der VorlesungenBean für Sokrates´ Home-Page <%@ page import="jspdemo.VorlesungenBean" %> <jsp:useBean id="prg" class="jspdemo.VorlesungenBean" scope="application"/> <HTML> <HEAD> <TITLE>Sokrates' Home-Page mit JSP</TITLE> </HEAD> <BODY> <H1><IMG ALIGN=TOP ALT="Bild" SRC="Sokrates.gif"> Prof. Sokrates</H1> <H1> Vorlesungen </H1> <%= prg.generiereVorlListe("Sokrates") %> </BODY> </HTML>

Wiederverwendung der VorlesungenBean <%@ page import="jspdemo.getVorlesungenBean" %> <jsp:useBean id="mybean" class="jspdemo.VorlesungenBean" scope="application" /> <HTML> <HEAD> <TITLE>Gesamtes Vorlesungs-Verzeichnis mittels Java Server Page</TITLE> </HEAD> <BODY> <H1>Die Professoren der Universität</H1> <UL> <LI> Prof. Augustinus <%= mybean.generiereVorlListe("Augustinus") %> <LI> Prof. Curie <%= mybean.generiereVorlListe("Curie") %> ........ </UL> </BODY> </HTML>