Überblick über Internet-Technologien Server-Technologien Servlets JSP PHP CGI nur HTML Datenbankkopplung Client-PGM ruft DB-Server Web-Server ruft Datenbankserver nur HTML HTML+Javascript nur HTML HTML+Applets XML+XSL Dokumentsprachen Client-Technologien (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 1 Java Server Pages (JSP) Bisher: HTML - statische Seiteninhalte php, ... - dynamische Seiteninhalte, nicht typsicher und portabel Servlets - dynamische Seiteninhalte, typsicher und portabel , aber keine Trennung von Layout, Logik und Daten Neu: JSP - dynamische Seiteninhalte, typsicher und portabel , etwas bessere Trennung von Layout, Logik und Daten (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 2 Internet-Technologie für E-Business Prof. Dr. Stefan Böttcher 1 Java Server Pages (Beispielausgabe) JSP-Verzeichnis Layout (+konstanter Inhalt) JSP-Seite dynamischer Inhalt Layout (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 3 JSP (Trennung von Design und Logik) Eingabe WebBrowser Ausgabe Client JSP-Web-Server JSP-Seite .class-Files Servlet (.java) Web-Seite (html) Java-Klasse(n) WebDesigner Programmierer Server (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 4 Internet-Technologie für E-Business Prof. Dr. Stefan Böttcher 2 Java Server Pages (JSP) http://localhost:8080 /beispiel1/clock.jsp JSP-Web-Server clock.jsp Web-Browser .class-Files Servlet (.java) Willkommen in ... Preisliste von Mo. 22.Jan 21:55 ... Web-Seite (html) Clock.Java Client Server (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 5 Servlet-Code zum Form Beispiel import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class KenntKunde extends HttpServlet { public void doGet ( HttpServletRequest request , HttpServletResponse response ) throws ServletException, IOException { res.setContentType("text/html"); PrintWriter aus = response.getWriter (); String kunde = request.getParameter("anrede"); aus.println("Ihre Name ist: "); aus.println( kunde ); } } (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 6 Internet-Technologie für E-Business Prof. Dr. Stefan Böttcher 3 Java Server Pages (Beispiel 1) <!-- clock0.jsp --> <!-- Diese Java Server Page funktioniert ohne eigenes Java-Programm --> <html> <body> Die aktuelle Zeit ist <%= new java.util.Date() %> </body> </html> JSP Ausdruck (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 7 Java Server Pages (Beispiel 2) JSP-Direktive <-- clock.jsp --> <%@ page language="java" %> <jsp:useBean id="clock" class="Clock" /> JSP-Aktion <HTML> <H1>Willkommen in unserem Internetshop</H1> <p> Preisliste von <%= clock.getDay() %> ist ... </HTML> JSP Ausdruck import java.util.*; public class Clock { public String getDay() { return " " + new Date() ; } } // Clock.Java (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 8 Internet-Technologie für E-Business Prof. Dr. Stefan Böttcher 4 Java Server Pages (Beispiel 3) <%@ page import="java.sql.*" language="java" %> <!-- JSP Aktion: Instanziiere Klasse Shop / Konstruktoraufruf --> <jsp:useBean id="shop" class="Shop"/> Shop-Kontruktor erzeugt DB-Verbindung <% ResultSet rsLiefert = null ; <!-- Servlet-Request --> String teil = request . getParameter("Teil"); <!-- JSP Skriptlet --> if ( teil == null || teil.equals("") ) rsLiefert = shop . getLiefert(); else rsLiefert = shop . getLiefert(teil); %> <html> <body> <form method="get" action="liefert2.jsp"> Teil: <input type="text" name="Teil" size="15"> <input type="submit" value="absenden"> </form> ... <!-- Ausgabe des Resultsets als Tabelle --> </body> </html> (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 9 JSP mit taglib <HTML> <-- beispiel1.jsp --> <%@ taglib uri="/bsplib" prefix="jsplib" %> <H1>Willkommen in unserem Internetshop</H1> <P>Preisliste von <jsplib:getDay/> ist ... </P> <jsplib:ifIs timeOfDay="PM"> Sonderangebot vor Ladenschluß ... </jsplib:ifIs> </HTML> <taglib> <tag> // Ausschnitt aus bsplib.tld <name>getDay</name> <tagclass>beispiel1.GetDayTag</tagclass> </tag> <tag> <name>ifIs</name> <tagclass>beispiel.IfIsTag</tagclass> <attribute> <name>timeOfDay</name> <required>true</required> </attribute> </tag> </taglib> (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 10 Internet-Technologie für E-Business Prof. Dr. Stefan Böttcher 5 Taglib - Datei <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <taglib> <tlibversion>1.0</tlibversion> <jspversion>1.1</jspversion> <shortname>bsplib</shortname> <tag> <name>getDay</name> <tagclass>beispiel1.GetDayTag</tagclass> </tag> <tag> <name>ifIs</name> <tagclass>beispiel.IfIsTag</tagclass> <attribute> <name>timeOfDay</name> <required>true</required> </attribute> </tag> </taglib> (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 11 ASP MicroSoft‘s Alternative zu JSP • serverseitige Skriptsprache zur Generierung von HTML • Mischung von HTML und Kontroll-Code (Schleifen, ...) <% Code-Einbindung wie JSP-Skriptlet %> • benutzt ASP-Komponenten (z.B. in Visual Basic) , generiert Objekte zu diesen Komponenten und ruft für diese generierten Objekte Funktionen der Komponente auf • Response für ASP–Ausgabe ( wie response –Variable bei JSP ) • spezielle Kommandos für Datenbankzugriff • Einbettung verschiedener MS-Sprachen möglich, z.B. VB (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 12 Internet-Technologie für E-Business Prof. Dr. Stefan Böttcher 6 ASP - Beispiel <HTML> <BODY> <% Dim obj Set obj = Server.CreateObject("asp1.hallo") Dim str str = obj.halloWelt Response.Write str %> </BODY> </HTML> Active Server Page asp1.asp ’ tests new Development Web Function halloWelt() As String halloWelt = "Hello, World!" End Function Visual Basic ASP Komponente hallo.cls (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 13 PHP Alternative zu JSP • serverseitige Skriptsprache zur Generierung von HTML • Mischung von HTML und Kontroll-Code (Schleifen, ...) • spezielle Kommandos für Datenbankzugriff • im Gegensatz zu JSP und ASP keine Komponenten eher für kleinere Web-Applikationen (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 14 Internet-Technologie für E-Business Prof. Dr. Stefan Böttcher 7 PHP-Beispiel <html> <body> Eine Tabelle mit PHP ausgegeben php-Einbettung <?php $db = mysql_connect("localhost", "root"); DB-Verbindung mysql_select_db("mydb",$db); $result = mysql_query("SELECT * FROM Auftrag",$db); Query echo "<table border=1>\n"; HTML-Tabelle echo "<tr><td>Name</td><td>Position</tr>\n"; while ($myrow = mysql_fetch_row($result)) ein Result lesen { printf( "<tr><td>%s</td><td>%s</td></tr>\n", und ausgeben $myrow[1], $myrow[2] ); } echo "</table>\n"; eingebetteter HTML-Code ?> </body> </html> (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 15 Extended Server Pages (XSP) • • • • • Trennung von Layout, Logik und Daten Layout (.xsl-File) Daten (.xml-File) Logik (Java-Code gekapselt in XML) Teil von cocoon (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 16 Internet-Technologie für E-Business Prof. Dr. Stefan Böttcher 8 Überblick über Internet-Technologien Server-Technologien Servlet generiert HTML JSP generiert HTML PHP generiert HTML CGI generiert HTML Datenbankkopplung Client-PGM ruft DB-Server Web-Server ruft DB-Server nur HTML nur HTML HTML+Javascript nur HTML HTML+Applets XML+XSL Dokumentsprachen Client-Technologien (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 17 Internet-Technologie für E-Business Prof. Dr. Stefan Böttcher 9