Webbasierte Informationssysteme Beispiel

Werbung
Beispiel: Web-Shop
Webbasierte Informationssysteme
???
SS 2004
Prof. Dr. Stefan Böttcher
Client
Server
Applikation Web-Shop, ...
ProduktDatenbank
Software
Web-Browser
mit Applet, ...
Web-Server, Servlet
Datenbank, ...
Hardware
PC, Laptop,
Handy, ...
Unix-Rechner, …
Universität Paderborn
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 1
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 2
IT- und TK-Infrastruktur
Überblick über Internet-Technologien
Server-Technologien
Datenbankkopplung
???
Client
Netzwerk
Applikation (Such-)Dienste,
Web-Shop, ...
Server
Kataloge, Dienste,
Mall, Bank, ...
Software
Web-Browser,
Applet, ...
Middleware,
Internet, ...
Web-Server,
Datenbank-S., ...
Hardware
PC, Laptop,
Handy, ...
Festnetz,
Funknetz, ...
Unix-Rechner,
...
Dokumentsprachen
Client-Technologien
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 3
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 4
Überblick über Internet-Technologien
Überblick über Internet-Technologien
Server-Technologien
XSP
Java Server Pages (JSP)
Servlet generiert HTML
PHP
CGI generiert HTML
nur HTML
trennt Layout / Logik / Daten
trennt z.T. Layout / Logik / Daten
effizient / geht nur in Java
einfach generierte Webseiten
geht in jeder Sprache
nur HTML
einfach (Firewalls+)
HTML+Javascript
schnell entwickelbare Animationen
HTML+Applets
Typ-sichere, wartbare Animationen
Client-Technologien
einfach
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 5
Webbasierte Informationssysteme
Prof. Dr. Stefan Böttcher
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 6
1
Überblick über Internet-Technologien
Überblick über Internet-Technologien
Datenbankkopplung
entlastet Web-Server
nur HTML
XML+XSL
Client-PGM ruft DB-Server
(läuft auch in altem Browser)
(trennt Layout und Inhalt, wartbar)
enge Kopplung
Web-Server ruft Datenbankserver
Dokumentsprachen
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 7
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 8
3. Java-Webserver (1)
Generierter HTML-Code
<html>
<head> <title> Generierter HTML-Code</title> </head>
<body>
Jetzt, Do 8. Feb 10:00:00 Uhr bieten wir Ihnen ...
</body>
</html>
• Der Tomcat-Webserver
• Servlets
• HTML-Forms
• Session-Konzepte
• Servlets mit Datenbank-Anbindung
Variabler Teil
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 9
Konstanter Teil
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 10
Java-Code zum generieren der Seite
Tomcat Web-Server installieren
import java.io.*; import java.util.*;
Variable für die Ausgabe
Ausgabestrom
public class Kunde3
{ public static void main( String[ ] args )
{ Date zeit = new Date() ;
PrintWriter aus = new PrintWriter(System.out) ; // aus für Ausgabe
aus.println("<HTML>");
aus.println(" <head> <title> Kunde3 </title> </head> ");
aus.println(" <body>");
aus.println(" <p>Jetzt, "+ zeit + " bieten wir Ihnen: ... \n </p>");
aus.println(" </body>");
aus.println("</HTML>");
aus.close() ;
}
}
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 11
Webbasierte Informationssysteme
Prof. Dr. Stefan Böttcher
•
•
•
•
download von: http://www.apache.org
Default-Installation vornehmen
Server starten mit: C:\tomcat\bin\startup.bat
Server stoppen mit: C:\tomcat\bin\shutdown.bat
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 12
2
HTML-Dokumente auf dem
Server speichern
• Dokumente speichern in:
C:\tomcat\Webapps\Root
• z.B.: HTML-Dokument lokal speichern als
C:\tomcat\Webapps\Root\Start.html
• HTML-Dokumente ggf. editieren, z.B. mit
Netscape (Datei|Seite ändern) oder UltraEdit
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 13
Überblick: Web-Server mit Servlets
Browser
auf dem Client
evtl. mit Eingaben
ruft
Tomcat Web-Server zugreifen
• im Browser Zugriff auf:
http://192.168.1.113:8080/Start.html
• IP-Nummer eines laufenden Tomcat-Servers
• Default-Port: 8080
• Dokumentname (z.B. Start.html) eines Dokuments
im Root-Verzeichnis C:\tomcat\Webapps\Root
• Zugriff auf Dokumente in Unterverzeichnissen des
Root-Verzeichnisses über Pfade, z.B.
http://192.168.1.113:8080/abteilung1/Start.html
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 14
Servlet : erstes Beispiel
Web-Server
HTML-Seiten
evtl. Servlets
Erzeugt
HTMLSeite
Servlet-Ausgabe
IP-Nummer
Port (8080)
Servlet-Verzeichnis
des Web-Servers
Servlet-Name
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 15
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 16
Was ist ein Servlet ?
Servlet-Code zum ersten Beispiel
• (in Java geschriebene und compilierte) Anwendung
auf dem Server.
• wird vom Webserver automatisch gestartet.
• erzeugt eine neue Seite für den Client.
• wird auf dem Server gespeichert, z.B. in
C:\tomcat\webapps\Root\Web-Inf\classes
• kann Eingaben des Benutzers in HTML-Forms
verarbeiten.
import java.io.* ; import javax.servlet.* ; import javax.servlet.http.* ;
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 17
Webbasierte Informationssysteme
Prof. Dr. Stefan Böttcher
public class Servlet1 extends HttpServlet
{ public void doGet (
HttpServletRequest req ,
HttpServletResponse res )
throws ServletException, IOException
{
res.setContentType("text/html");
PrintWriter aus = res.getWriter ( );
aus.println(“Willkommen in unserem Internetshop !");
}
}
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 18
3
HTML-Form-Beispiel
HTML-Form
• Teil eines HTML-Dokuments
• Kann Eingaben des Benutzers verarbeiten.
• Input-Felder für interaktive Eingabe
des Benutzers auf dem Client
• Submit-Knopf
(zum abschicken des ausgefüllten Formulars)
• Eingaben werden z.B. in Servlets verarbeitet
Submit-Knopf
Input-Feld
Webseite
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 19
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 20
HTML-Form-Code-Beispiel
Servlet-Code zum Form Beispiel
<html> <head> <title> Hallo Kunde, bitte identifizieren !
</title> </head>
<body>
<H3>Herzlich willkommen in unserem Internetshop.
Bitte geben Sie Ihren Namen ein ! </H3>
<form method=get action="servlet/KenntKunde">
<input type=text name="anrede"> <p>
<input type=submit value="Absenden">
</form>
</body>
</html>
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 21
Servlet
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 22
Parameter
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 23
Webbasierte Informationssysteme
Prof. Dr. Stefan Böttcher
public class KenntKunde extends HttpServlet
{ public void doGet (
HttpServletRequest req ,
HttpServletResponse res )
throws ServletException, IOException
{
res.setContentType("text/html");
PrintWriter aus = res.getWriter ();
String kunde = req.getParameter("anrede");
aus.println("Ihre Name ist: ");
aus.println( kunde );
}
}
Alternative:
Servlet generiert HTML-Code
Ausgabe des Servlets
Ausgabe
import java.io.*; import javax.servlet.*; import javax.servlet.http.*;
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 24
4
Servlet generiert HTML-Code
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class KenntKunde2 extends HttpServlet
{ public void doGet ( HttpServletRequest req , HttpServletResponse res )
throws ServletException, IOException
{ res.setContentType("text/html"); PrintWriter aus = res.getWriter ( );
String kunde = req.getParameter("anrede");
aus.println("<HTML><HEAD><TITLE>Willkommen</TITLE></HEAD><BODY>");
aus.println("<H3>Hallo <i>" + kunde + "</i>, willkommen in unserem ...!</H3>");
aus.println("<h3>In welchem Jahr sind Sie geboren, " + kunde +" ?</h3>" );
aus.println("<form method=get action=Rechnet>");
aus.println("<input type=text name=alter><p>");
aus.println("<input type=submit value=Absenden>");
aus.println("</form></BODY></HTML>");
}
Umwandlung von Strings in Zahlen /Ausnahmen
String s = tf.getText() ;
// String s aus TextField tf einlesen
Umwandlung nach int über Klasse Integer
try{
// try-Block wird ausgeführt, bis Ausnahme auftritt
// Ausnahme , falls s keine Ganzzahl enthält
int intwert = Integer.valueOf( s ).intValue() ;
} catch ( Exception e ) { System.out.println( “Fehler : “ + e ) ; }
Umwandlung nach double über Klasse Double
try{ // Ausnahme , falls s keine Komma-Zahl enthält
double doublewert = Double.valueOf( s ).doubleValue() ;
} catch ( Exception e ) { System.out.println( “Fehler : “ + e ) ; }
}
auffangen einer Ausnahme
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 25
Ausgabe des Servlets Rechnet.class
Servlet
Parameter
Ausnahme-Behandlung
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 26
Java-Code des Servlets: Rechnet.java
import java.io.*; import javax.servlet.*; import javax.servlet.http.*;
public class KenntKundeundRechnet extends HttpServlet
{ public void doGet ( HttpServletRequest req , HttpServletResponse res )
throws ServletException, IOException
{ res.setContentType("text/html");
PrintWriter aus = res.getWriter ();
String geburtsjahr = req.getParameter("alter");
int alter = 2001 - new Integer(geburtsjahr).intValue();
aus.println( "<HTML><HEAD><TITLE>Berechnet Alter des Kunden" +
"</TITLE></HEAD><BODY>" );
aus.println("<H3>2001 minus " + geburtsjahr + " sind " + alter + ".</H3><P>");
aus.println("Dann sind Sie also <b>" + alter + "</b> Jahre alt " +
"- oder werden es noch in diesem Jahr </BODY></HTML>");
}
}
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 27
HTML-Form-Passwort-Beispiel
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 28
HTML-Code zum Passwort-Beispiel
<html>
<head> <title>Hallo Kunde, Passwort bitte !</title> </head>
Passwort-Felder für NICHT SICHTBARE interaktive Eingabe
des Benutzers.
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 29
Webbasierte Informationssysteme
Prof. Dr. Stefan Böttcher
<body>
<H3>Herzlich willkommen in unserem Internetshop! </H3>
<p>
<form method=get action="servlet/KenntKunde2">
Benutzername: < input type=text name=“anrede“ ><p>
Passwort: < input type=password name=“code“ ><p>
< input type=submit value=“Absenden“ >
</form>
</body>
</html>
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 30
5
Servlet-Code zur Passwort-Abfrage
Passwort abfragen in Java
...
public void doGet ( HttpServletRequest req ,
HttpServletResponse res )
throws ServletException, IOException
{ ...
String passwort = req.getParameter(“code“);
if ( passwort.equals( “xy45!q%“ ) ) SeiteZeigen ( res ) ;
else
MeldungFalschesPasswort ( res ) ;
}
INPUT-Arten für HTML-Forms
•
•
•
•
•
•
•
•
Submit-Knopf zum Abschicken der Eingabe
Reset-Knopf zum Zurücksetzen der Eingabe
Image (wirkt wie Submit)
Checkbox
Radio-Button
Text : Feld zur sichtbaren Eingabe von Text
Passwort: Feld zur Eingabe von Passwörtern
NICHT SICHTBARE Hidden-Felder
für Sitzungsinformationen.
Seite generieren, je nachdem, ob Passwort o.K.
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 31
Sitzungen
Hidden-Felder werden benutzt, um Informationen
von einer Seite zur nächsten zu tragen.
• Alternative 1: Alle bisher ausgetauschten Daten
werden im Hiddenfeld codiert.
• Alternative 2: Nur eine Session-Id
wird im Hiddenfeld codiert,
der Rest wird serverseitig gespeichert.
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 33
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 32
Überblick über Internet-Technologien
Server-Technologien
XSP generiert HTML
Servlet generiert HTML
trennt Layout, Logik und Daten
effizient / geht nur in Java
JSP generiert HTML
Java pendant zu ASP
PHP generiert HTML
eigene Sprache
CGI generiert HTML
nur HTML
geht in jeder Sprache
einfach
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 34
Überblick über Internet-Technologien
Server-Technologien
Datenbankkopplung
XSP generiert HTML
Servlet generiert HTML
JSP generiert HTML
PHP generiert HTML
CGI generiert HTML
Client-PGM ruft DB-Server
Web-Server ruft DB-Server
nur HTML
nur HTML
XML+XSL
Dokumentsprachen
nur HTML
HTML+Javascript
HTML+Applets
Client-Technologien
Webbasierte Informationssysteme - SS 2004 - Prof. Dr. Stefan Böttcher – Folie 35
Webbasierte Informationssysteme
Prof. Dr. Stefan Böttcher
6
Herunterladen