Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung.

Ähnliche Präsentationen


Präsentation zum Thema: "Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung."—  Präsentation transkript:

1 Datenanbindung in Web- Applikationen

2 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung in serverseitigen Applikationen – Web-Applikationstechnologien: PHP, ASP, ASP.NET, JSP – Ausführliche Einführung in PHP – Kurze Einführung in SQL als "Datenbanksprache"

3 3 Datenpersistenz Möglichkeiten der Datenpersistenz – statische Inhalte z.B. in HTML, XML Dateien fixe Daten ohne (Vor-)verarbeitung – dynamische Inhalte Aufbereitung in serverseitigen Programmen (z.B. PHP, ASP, CGI etc.) – Filesystem: low-level direct I/O – Datenbankmanagementsbstem (DBMS): high-level managed I/O

4 4 Datenpersistenz Abstraktionsebenen bei Datenzugriff – DBMS als einzige Schicht – Business Objects Layer Schicht zwischen Applikation und DBMS Ziel: Kapseln der Anwendungslogik in Business Objects Realisierung meist über Klassen-/Objektbibliotheken oder Services (z.B. Java Beans, COM-Objekte,...) – Transaction Processing Monitors (TPM) Verwaltung einkommender Client-Anfragen Bündelung gleichartiger Anfragen bei gleichzeitiger Sicherstellung der Datenintegrität wichtig für verteilte, stark vernetzte Architekturen

5 5 Web-Applikation mit Datenanbindung Datenbankanbindung in einer serverseitigen Web-Applikation Ablauf einer Webseitenabfrage 3. Aufruf von DB-Funktionen über DB-API Serverseitige Programme DBMS Daten- bank 4. Ausführen der Funktionen auf der DB 5. Ergebnis liefern 2. Request verarbeiten Webserver 6. Response vorbereiten Serverseite 1. HTTP- Request schicken Webclient (z.B. Browser) 7. HTTP- Response schicken 8. Response anzeigen

6 6 Technologien für Web-Applikationen Überblick – Datenbankschnittstellen ODBC/JDBC Native – einige serverseitige Scriptumgebungen: PHP ASP, ASP.NET JSP ColdFusion – Vergleich

7 7 DB-Schnittstellen Open Database Connectivity (ODBC) – Standardisiertes API für Datenbankzugriff – DB-spezifische Implementierungen durch ODBC-Treiber – SQL als Datenbankzugriffssprache Java Database Connectivity (JDBC) – Java Klassenbibliothek von Sun Microsystems Native APIs – Spezielle Application Programming Interfaces (API) für bestimmte Datenbanksysteme und/oder Sprachen zB. für OCI-Funktionen in PHP für Oracle8

8 8 PHP PHP: Hypertext Preprocessor – Scriptsprache – Open Source – Serverseitige Verarbeitung – Eingebettet in HTML Datenanbindung – Mit allen gängigen Datenbank-/Betriebssystem–/ Server-Konfigurationen möglich – PHP/MySQL beliebteste Kombination Schnell, billig, unkompliziert

9 9 PHP Eingebettet in HTML – Spezielle Tags zur Markierung von PHP- Abschnitten, u.a. –...jump in and out of "PHP mode" – Bsp.: – am Client: PHP Beispiel PHP Beispiel Guten Tag!

10 10 ASP, ASP.NET Active Server Pages – Serverseitige Technologie von Microsoft – Konzept ähnlich PHP Eingebettet in HTML – Unterstützt verschiedene Scriptsprachen – Plattform: WinNT, IIS – Datenanbindung: funktioniert mit ODBC-fähigen DBs ASP.NET – Trennung HTML und OO-Programmcode – Ereignisorientiert, Objektorientiert, verwendet Teilmenge der.NET Klassenbibliothek – Definiert HTML-Elemente als Objekte – vorherrschende Sprachen: VB.NET, C# (früher: VBScript, JScript) – Datenanbindung: Funktioniert derzeit mit SQL-Server und OLEDB

11 11 ASP, ASP.NET ASP: eingebettet in HTML, ablauforientiert ASP Beispiel

12 12 ASP, ASP.NET ASP.NET: "hinter" HTML, ereignisorientiert Public Class TestPage Inherits System.Web.UI.Page Private Sub Page_Load(…) Handles MyBase.Load Tbl.BorderColor = Color.Blue Tbl.Rows(1).Cells(3).Text = "Hello!"... End Sub End Class test.aspx test.aspx.vb

13 13 JSP JavaServer Pages – Ähnliches Konzept wie PHP/ASP – Java-Code eingebettet in HTML – Server erzeugt bei erstem Zugriff ausführbares Servlet: "Reiner" Java-Bytecode HTML-Ausgabe über Response-Objekt Datenanbindung – Zugriff auf Datenbank über JDBC-Klassen – Benötigt JDBC-Treiber für Datenbank

14 14 Weitere... Common Gateway Interface (CGI) – Weit verbreiteter serverseitiger Mechanismus Parameterübergabe an Programme (z.B. Formulareingaben) Dynamische Erzeugung von HTML-Seiten,... – Sprachen: PERL, C/C++,... – Datenbankanbindung möglich ColdFusion – Kommerzielle Technologie (teuer) – In HTML eingebettete Tags – Datenbankanbindung möglich

15 15 Vergleich PHPASP.NETJSPCGI SprachenPHPVB.NET, C# JavaPERL, C/C++,... DBSAlle nativeOLEDB, SQL-Server JDBCAlle PlattformAlleWinNT, IISWindows, Unix/Linux Alle KostenFreeware, Open Source Freeware X

16 Einführung in PHP

17 17 Allgemeines Allgemeines zu PHP – steht für PHP Hypertext Preprocessor – ist eine Skriptsprache – wird eingebettet in HTML – wird serverseitig verarbeitet – wird seit 1994 entwickelt, ist sehr beliebt – ist angelehnt an C, Java, und Perl – besitzt APIs zu sehr vielen DBS PHP ist verfügt über umfangreiche Dokumentation: – Homepage:http://www.php.net oder – Handbuch:

18 18 PHP-Code 4 verschiedene Möglichkeiten zur Einbettung in HTML (abhängig von der PHP-Konfiguration) … Kommentare innerhalb von PHP-Code Jede PHP-Anweisung muss mit Strichpunkt abgeschlossen werden!

19 19 Textausgabe Textausgabe mit print oder echo

20 20 Variablen in PHP beginnen Variable mit einem Dollarzeichen ( $ ), gefolgt vom Namen der Variablen. Name muss entweder mit Buchstaben oder Underscore ( _ ) beginnen!

21 21 Variablen Es gibt verschiedene Typen von Variablen – Skalare Typen String Integer Float Boolean – Zusammengesetzte Typen Arrays Objekte

22 22 Arrays Arrays bestehen aus mehreren indizierten Elementen. "Normale" Arrays haben einen numerischen Index beginnend bei Null. Ergibt: Array ( [0] => 47 [1] => 11 [2] => 10 [3] => hallo )

23 23 Arrays Assoziative Arrays verwenden String- oder Integer-Indices, um beliebige Werte zu referenzieren: "Clint", "Nachname" => "Eastwood", "Alter" => 74); # formattierte Ausgabe: echo $star["Vorname"]. " ". $star["Nachname"]. " ist ". $star["Alter"]. " Jahre alt."; ?> Ergibt: Clint Eastwood ist 74 Jahre alt.

24 24 Vordefinierte Variablen In PHP sind einige Variablen vordefiniert $PHP_SELF : Name des aktuellen Scripts $HTTP_POST_VARS : Alle Variablen, die über ein Formular geliefert werden (s. später) $HTTP_GET_VARS : Variablen, die über die URL geliefert werden, z.B. Aufruf von: print_r($HTTP_GET_VARS) liefert: Array ( [x] => 10 [y] => Hallo ) $HTTP_COOKIE_VARS : Cookie-Variablen $HTTP_SERVER_VARS : Server-Variablen, z.B. URL des Client Hinweis: Alle vordefinierten Variablen können angezeigt werden mit :

25 25 Operatoren Arithmetische Operatoren

26 26 Operatoren Logische Operatoren Vergleichsoperatoren $b; # ungleich? $a !== $b; # unident? $a < $b; # kleiner? $a > $b; # grösser? # kleiner oder gleich? $a <= $b; # grösser oder gleich? $a >= $b; ?>

27 27 Operatoren Zuweisungsoperatoren Es gibt noch viele weitere Operatoren, zu finden unter:

28 28 Kontrollstrukturen Konstrollstrukturen sind wichtige Elemente einer Programmiersprache, da sie dynamische und variable Abläufe ermöglichen PHP kennt u.a. folgende Kontrollstrukturen: – if, elseif, else – while, do – for, foreach – break, continue – switch – include

29 29 if, elseif, else if, elseif, else werden für Abfrageverzweigungen verwendet if und elseif evaluieren beliebige nicht-leere Ausdrücke zu TRUE oder FALSE = 0 && $a < 10) { /* wenn $a gleich 8 oder gleich 9, wird dieser Block ausgeführt */ } elseif ($a == "Text") { /* dieser Block wird ausgeführt, wenn $a grösser oder gleich 11. Nach der Prüfung wird $a inkrementiert */ } else { /* dieser Block, falls alle die anderen Bedingungen nicht erfüllt sind */ } ?>

30 30 switch wenn eine Variable auf mehrere Werte geprüft wird, so empfiehlt sich ein switch-Statement case : Prüfwert break : Tritt aus dem switch-Block aus default : Anweisung(en), die ausgeführt werden, falls kein case zutrifft.

31 31 while, do while-Schleifen werden solange durchlaufen, bis der Kontrollausdruck zu FALSE evaluiert Gibt 10 mal den Text aus Gibt ebenfalls 10 mal den Text aus

32 32 for for-Schleifen sind etwas komplexer, da Sie 3 (optionale) Ausdrücke beinhalten: Initialisierung: wird bei Schleifeneintritt einmalig ausgeführt Kontrollbedingung: Schleife bricht ab, wenn diese Bedingung zu FALSE evaluiert Anweisung, die am Ende jedes Durchlaufs ausgeführt wird

33 33 foreach foreach ist ein Konstrukt zum bequemen Durchlaufen von Arrays $v) { echo "Schlüssel $k hat Wert $v"; } ?>

34 34 Weitere In Schleifen kann man die Abarbeitung beinflussen: break : Veranlasst den sofortigen Austritt aus der Schleife continue : erzwingt sofort den nächsten Durchlauf, ohne die restlichen Statements der Schleife auszuführen. Um andere Dateien einzubinden: Der Code einer eingebundenen Datei wird an die Stelle des include-Statements gesetzt

35 35 Funktionen Häufig benutzte Anweisungssequenzen kann man in eine Funktion verpacken: Eine Funktion hat also einen Namen, eine Liste von Parametern, und optional einen Rückgabewert

36 36 Web-Formulare Web-Formulare sind die beliebteste Form der Benutzerinteraktion auf Webseiten Die Frage ist: Wie kann man Benutzereingaben in PHP verarbeiten? – Antwort: Die Benutzereingaben werden dem PHP-Skript als HTTP-Post- oder HTTP-Get-Variablen zur Verfügung gestellt (beide Mechanismen sind Teil des HTTP Protokolls) – $HTTP_POST_VARS und $HTTP_GET_VARS sind vordefinierte assoziative Arrays! Detaillierte Infos zu allen PHP und Formularen: und

37 37 Web-Formulare Formular definieren in der Datei form.php : Beim ersten Aufruf im Browser wird das Formular dargestellt: Nach drücken auf "Abschicken!" wird die Ausgabe dargestellt, weil isset(...) zu TRUE evaluiert

38 38 Exkurs: SQL Relationale Datenbanken bestehen u.a. aus Tabellen (Tables) – Ein Datensatz ist eine Zeile einer Tabelle – Die Spalten entsprechen den einzelnen Feldern (Attributen) eines Datensatzes – Beispiel: Tabelle Mensen IDNameNoteKommentar 1NIG Mensa4Übel 2Katholische Mensa1Sehr fein...

39 39 Exkurs: SQL SQL bietet Möglichkeiten, Tabellen zu erzeugen, zu manipulieren, und abzufragen – CREATE TABLE : Tabelle erzeugen – SELECT : Inhalte auslesen – UPDATE : Inhalte ändern – DELETE : Inhalte löschen Wichtigstes Statement: SELECT SELECT Spalte(n) FROM Tabelle(n) WHERE Bedingung(en) ;

40 40 Exkurs: SQL Will man z.B. alle Mensennamen: SELECT Name FROM Mensen; Will man Name und Note der Mensa auslesen: SELECT Name, Note FROM Mensen; Bedingungen können angegeben werden: SELECT * FROM Mensen WHERE Note = 1; Neue Datensätze werden folgendermaßen hinzugefügt: INSERT INTO Mensen VALUES (3, 'TU', '2', 'Recht gut'); Ändern von Datensätzen UPDATE Mensen SET Note = 5 WHERE ID = 1;

41 41 Datenanbindung in PHP PHP bietet Schnittstellen (API) zu allen gängigen Datenbanksystemen und Standards – Oracle, MySQL, dBase, PostgreSQL, Informix, Sybase, ODBC, uvm... Alle diese APIs bieten zumindest folgende Funktionalität: – Verbindung zur DB herstellen und trennen – Abfrage an die DB schicken (meist mehrstufig) – Ergebnis durchlaufen einzelne Datensätze auslesen – Felder einzelner Datensätze auslesen Kann man mit einer DB-Schnittstelle umgehen, kann man mit allen umgehen!

42 42 Datenanbindung in PHP Beispiel Oracle8: OCI-Funktionen Ausgabe: NIG Mensa hat die Note 4. Katholische Mensa hat die Note 1. IDNameNoteKommentar 1NIG Mensa4Übel 2Katholische Mensa1Sehr fein

43 43 PHP Links Homepage: oder besser (weil schneller) Ein einfaches Tutorial gibts dort auch: Eine gute Einführung als PDF gibts von Team ThinkPHP:


Herunterladen ppt "Datenanbindung in Web- Applikationen. 2 Überblick In diesem Kapitel: – Datenpersistenz allgemeine Aspekte der Datenpersistenz in Web- Applikationen Datenbankanbindung."

Ähnliche Präsentationen


Google-Anzeigen