Überblick über Internet-Technologien



Ähnliche Dokumente
Java Server Pages (JSP)

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS Universität zu Lübeck

Webbasierte Informationssysteme

ASP: Active Server Pages

Einführung in die Scriptsprache PHP

WebPoint. Ein Framework zur Erstellung von webbasierten Verkaufsanwendungen. Maria C. Raabe Daniel Woithe Vorlage: Torsten Walter. 16.

FHZ. Servlets/JSP. Lernziele. Hochschule Technik+Architektur Luzern. Inhalt

IT-Zertifikat: Allgemeine Informationstechnologien II PHP

Datenbanksysteme SS 2007

Java Webentwicklung (mit JSP)

Java - Webapplikationen

Web 2.0 Software-Architekturen

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

C O C O O N. Wo ist Cocoon in die Apache Projekte einzureihen?

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

HTML Formulare. Benutzerschnittstelle für interaktive Webseiten

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

Webbasierte Informationssysteme

Einführung in Internet- und Middleware Technologien

Datenbanksysteme SS 2007

Themen. Web Service - Clients. Kommunikation zw. Web Services

Java zur Realisierung von Internetanwendungen

Datenbanken 1. Einführung und Zugänge für die eingesetzten Resourcen. ISWeb - Information Systems & Semantic Web University of Koblenz Landau, Germany

Kapitel 5 Serverseitige Technologien

Datenbanksysteme SS 2007

Auslieferungsmethoden im Performancevergleich Zieleinlauf mit Java

MCRServlet Table of contents

Kommunikationsnetze. 7. Das World Wide Web 7.4 Client- vs. Server-basierte Techniken für dynamische Webseiten

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Application Frameworks

Herzlich willkommen im Modul Web-Engineering

HTML5 Formulare. HTML5 Formulare Seite Seite 1 von 7 Florian Bauer

Dynamik bis zur DB-Interaktion. Marc Schanne. CGI Möglichkeiten

J a v a S e r v l e t s

Herzlich Willkommen! eine praxisnahe Übersicht. Mit Java ins Web - mb@bebox.franken.de (c) Michael Behrendt -

Java: Vererbung. Teil 3: super()

Informatik I: Einführung in die Programmierung

Seminar SS 2000 Enterprise Application Intergration

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

Online Kataloge. Wie binde ich einen SGVSB-Online-Katalog in eine Webseite ein. Versionsnummer: 1.0 Änderungsdatum:

Existierende Systeme I Bibliotheken & Frameworks

Der lokale und verteilte Fall

Formulare & Zähler. Erstellen von Formularen & Zählern mit FrontPage- oder ASP-Erweiterungen ZUGEHÖRIGE INFORMATIONEN

Java Server Pages 2 und Benutzerdefinierte Tags. Strahil Yordanov

Web- Applikationen. in Java-Web

Herzlich willkommen im Modul Informatik Grundlagen

Einführung in Javadoc

PHP und MySQL. Sicherheit und Session-Handling mit PHP. Zellescher Weg 12 Willers-Bau A109 Tel

Es wird das Struts <html:option> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.

Studentische Lösung zum Übungsblatt Nr. 7

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

WebService in Java SE und EE

DYNAMISCHE SEITEN. Warum Scriptsprachen? Stand: CF Carola Fichtner Web-Consulting

Internet und WWW Übungen

Programmieren II. Wie kommen Daten von einem Webserver? Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011

PHP. Prof. Dr.-Ing. Wolfgang Lehner. Diese Zeile ersetzt man über: Einfügen > Kopf- und

5. Übung: PHP-Grundlagen

e-commerce Running Tomcat

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel

Graphen in Apex von Thomas Hernando.

Einführung in die Programmierung

Komponenten & Hypermedia Seminar Prof. Dr. Frank Thiesing Struts Java-Framework für Web-Applikationen. Referenten: Fabian Bartelt Jens de Witt

Berufsakademie Stuttgart, Außenstelle Horb, MI2002

GEONET Anleitung für Web-Autoren

Online-Publishing mit HTML und CSS für Einsteigerinnen

6.9 Java Server Pages

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer

Integrierte und automatisierte GUI-Tests in Java

8. Workshop - Internetarchivierung

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Einleitung JavaServer Pages Erweiterungsmechanismen Beispiel Fazit. JavaServer Pages. Seminar Webprogrammierung WS04/05. Timothy Burk. 6.

Servlet-zentrierte Architektur von Web-Anwendungen mit Java Servlets, Java Server Pages (JSPs) und Java Beans

Multimedia im Netz Wintersemester 2011/12

Programmieren in Java

XSLT Vortrag. 2. Beispiel XML. 3. Anwendungsmöglichkeiten von XSLT 4. XHTML

DataTables LDAP Service usage Guide

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

C# im Vergleich zu Java

Institut für Programmierung und Reaktive Systeme 25. August Programmier-Labor Übungsblatt. int binarysearch(int[] a, int x),

Einführung in PHP. (mit Aufgaben)

Dynamische Webseiten mit PHP. Oder: LAMP - The open way

Client/Server-Programmierung WS2007/08. EJB/JSP: Schritt-für-Schritt Anleitung

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter

Programmieren II. Remote-Programmierung. Institut für Angewandte Informatik

Unsere Webapplikation erweitern

Programmiervorkurs SS 2011 Technische Universität Darmstadt Jan Hendrik Burdinski, Felix Kerger

Apache HTTP-Server Teil 2

Remote Method Invocation

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Aus unserer Projekt- und Schulungserfahrung Oracle TechNet

Abschnitt 12: Strukturierung von Java-Programmen: Packages

WPF Steuerelemente Listbox, ComboBox, ListView,

Themen. Apache Webserver Konfiguration. Verzeichnisse für Web-Applikationen. Server Side Includes

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

HTML. HyperText Markup Language. Die Programmiersprache des WWW. Keine eigentliche Programmiersprache, sondern eher Seitenbeschreibungssprache

XHTML MP. Mobile Internet. Axel Reusch ar047 MIB

Praktikum Datenbanken und verteilte Systeme SS Java Server Pages und Servlets -

<body> <h1>testseite für HTML-Parameter-Übergabe<br>50 Parameter werden übergeben</h1>

Transkript:

WebServer-Technologien SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Überblick über Internet-Technologien Server-Technologien XSP Java Server Pages (JSP) Servlet generiert HTML PHP CGI generiert HTML nur HTML nur HTML XML+XSL Dokumentsprachen Datenbankkopplung Client-PGM ruft DB-Server Web-Server ruft Datenbankserver nur HTML HTML+Javascript HTML+Applets Client-Technologien - SS 2004 - Prof. Dr. Stefan Böttcher Folie 2 Prof. Dr. Stefan Böttcher 1

Sprachen für Serverpages JSP JSP mit Datenbankanbindung Vergleich von ASP mit JSP Vergleich von PHP mit JSP - SS 2004 - Prof. Dr. Stefan Böttcher Folie 3 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 - SS 2004 - Prof. Dr. Stefan Böttcher Folie 4 Prof. Dr. Stefan Böttcher 2

Java Server Pages (Beispielausgabe) JSP-Verzeichnis JSP-Seite Layout (+konstanter Inhalt) dynamischer Inhalt Layout - SS 2004 - Prof. Dr. Stefan Böttcher Folie 5 JSP (Trennung von Design und Logik) Eingabe JSP-Web-Server JSP-Seite Web- Designer Web- Browser.class-Files Servlet (.java) Ausgabe Web-Seite (html) Java-Klasse(n) Programmierer Client Server - SS 2004 - Prof. Dr. Stefan Böttcher Folie 6 Prof. Dr. Stefan Böttcher 3

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... Client Web-Seite (html) Server Clock.Java - SS 2004 - Prof. Dr. Stefan Böttcher Folie 7 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 ); } } - SS 2004 - Prof. Dr. Stefan Böttcher Folie 8 Prof. Dr. Stefan Böttcher 4

Java Server Pages (Beispiel 1) <!-- clock0.jsp --> <!-- Diese Java Server Page funktioniert ohne eigenes Java-Programm --> <html> <body> </body> </html> Die aktuelle Zeit ist <%= new java.util.date() %> JSP Ausdruck - SS 2004 - Prof. Dr. Stefan Böttcher Folie 9 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() ; } } - SS 2004 - Prof. Dr. Stefan Böttcher Folie 10 // Clock.Java Prof. Dr. Stefan Böttcher 5

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"); if ( teil == null teil.equals("") ) <!-- JSP Skriptlet --> 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> - SS 2004 - Prof. Dr. Stefan Böttcher Folie 11 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> </tag> <tag> </tag> </taglib> // Ausschnitt aus bsplib.tld <name>getday</name> <tagclass>beispiel1.getdaytag</tagclass> <name>ifis</name> <tagclass>beispiel.ifistag</tagclass> <attribute> <name>timeofday</name> <required>true</required> </attribute> - SS 2004 - Prof. Dr. Stefan Böttcher Folie 12 Prof. Dr. Stefan Böttcher 6

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> - SS 2004 - Prof. Dr. Stefan Böttcher Folie 13 4. Apache-Webserver und CGI Der Apache-Webserver CGI-Skripte Vergleich von CGI und Servlets - SS 2004 - Prof. Dr. Stefan Böttcher Folie 14 Prof. Dr. Stefan Böttcher 7

Apache - Webserver Client GET /willkommen.html HTTP/1.0 action = cgi-bin/pgm1 C:\programme \Apache Group \Apache \htdocs willkommen.html \Abteilung1 WebseitenVonAbteilung1 \Abteilung2 WebseitenVonAbteilung2 \cgi-bin cgi-programme \conf httpd.conf Server - SS 2004 - Prof. Dr. Stefan Böttcher Folie 15 CGI: Interaktion mit HTML-Forms Protokoll, IP-Nummer, Port, Web-Seite Textfeld Passwortfeld Submit-Knopf - SS 2004 - Prof. Dr. Stefan Böttcher Folie 16 Prof. Dr. Stefan Böttcher 8

Quellcode mit HTML-Form <HTML> <BODY> <FORM method="post" action="http://172.16.0.2/cgi-bin/j3.bat"> <br> User: <INPUT type="text" name="username" size="30" > <br> Passwort: <INPUT type="password" name="passwort" size="30" > <br> <INPUT type="submit" value="anfrage abschicken" > </FORM> </BODY> </HTML> - SS 2004 - Prof. Dr. Stefan Böttcher Folie 17 Ausgabe eines CGI-Programms Web-Server CGI-Verzeichnis CGI-Programm Attribut Wert (+ für blank) Liste der Eingabeparameter an das CGI-Programm - SS 2004 - Prof. Dr. Stefan Böttcher Folie 18 Prof. Dr. Stefan Böttcher 9

Common Gateway Interface (CGI) HTML- Seite Eingabe Browser Client CGI- Programm Auf dem Server: CGI-Verzeichnis für Programme (Sprache beliebig) Aufruf von CGI-Programmen ist in HTML-Seite eingebaut Browser-Click ruft CGI-Programm statt gewöhnliche HTML-Seite Dateneingabe im Browser möglich, Übergabe an das CGI-Programm über Umgebungsvariablen (get) oder Datei (post) CGI-Programm muß Eingabedaten decodieren CGI-Programm generiert als Ergebnis HTML-Seite Client-Browser zeigt generierte HTML-Seite ruft generierte Seite Server - SS 2004 - Prof. Dr. Stefan Böttcher Folie 19 CGI-Beispiel Batch-Datei j3.bat wird lediglich benötigt, um Java aufzurufen: java j4 Das Programm CGI-Programm (hier z.b. j4.class) liest die mit POST geschickten Daten von der Standardeingabe und schreibt in die Standardausgabe Der Web-Server schickt diese Ausgabe an den Browser auf dem Client. - SS 2004 - Prof. Dr. Stefan Böttcher Folie 20 Prof. Dr. Stefan Böttcher 10

Prozesse und Threads Prozesse : laufen in eigenem Adreßraum, eigener Prozeßkontrollblock => relativ aufwendig Threads = nebenläufige leichte Prozesse => effizienter/schneller umschaltbar - SS 2004 - Prof. Dr. Stefan Böttcher Folie 21 Threads und Synchronisation Threads = nebenläufige leichte Prozesse op1( ) op2( ) class Kreuzung {... synchronized void überquere( ) {... } } synchronized : schützt kritische Abschnitte, läßt nur einen Thread zur Zeit eintreten - SS 2004 - Prof. Dr. Stefan Böttcher Folie 22 Prof. Dr. Stefan Böttcher 11

MicroSoft s Alternative zu JSP ASP 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 - SS 2004 - Prof. Dr. Stefan Böttcher Folie 23 ASP - Beispiel <HTML> <BODY> <% Dim obj Set obj = Server.CreateObject("asp1.hallo") Dim str str = obj.hallowelt Response.Write str %> </BODY> </HTML> ' tests new Development Web Function hallowelt() As String hallowelt = "Hello, World!" End Function Active Server Page asp1.asp Visual Basic ASP Komponente hallo.cls - SS 2004 - Prof. Dr. Stefan Böttcher Folie 24 Prof. Dr. Stefan Böttcher 12

PHP Hypertext Processor (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 - SS 2004 - Prof. Dr. Stefan Böttcher Folie 25 PHP-Beispiel <html> <body> Eine Tabelle mit PHP ausgegeben <?php $db = mysql_connect("localhost", "root"); mysql_select_db("mydb",$db); $result = mysql_query("select * FROM Auftrag",$db); echo "<table border=1>\n"; echo "<tr><td>name</td><td>position</tr>\n"; while ($myrow = mysql_fetch_row($result)) { printf( "<tr><td>%s</td><td>%s</td></tr>\n", $myrow[1], $myrow[2] ); } echo "</table>\n";?> </body> </html> - SS 2004 - Prof. Dr. Stefan Böttcher Folie 26 php-einbettung DB-Verbindung Query HTML-Tabelle ein Result lesen und ausgeben eingebetteter HTML-Code Prof. Dr. Stefan Böttcher 13

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 - SS 2004 - Prof. Dr. Stefan Böttcher Folie 27 Arten von Webserver-Technologien Server-Technologien für Web-Server statische Webseiten dynamisch generierte Seiten Layout-orientiert Logik-orientiert nur HTML PHP JSP ASP XSP CGI Servlet - SS 2004 - Prof. Dr. Stefan Böttcher Folie 28 Prof. Dr. Stefan Böttcher 14

Überblick über Server-Technologien Server-Technologien für Webserver XSP Active Server Pages (ASP) Mischt Java und XML mischt Programm und HTML Java Server Pages (JSP) mischt Java und HTML Servlet generiert HTML Java portabel & typsicher PHP CGI generiert HTML mischt Programm und HTML beliebige Programmiersprache nur HTML statische Webseiten - SS 2004 - Prof. Dr. Stefan Böttcher Folie 29 Zusammenfassung: Internet-Technologien Webserver-Technologien XSP Active Server Pages Java Server Pages (JSP) Servlet generiert HTML PHP CGI generiert HTML nur HTML nur HTML XML+XSL Dokumentsprachen Datenbankkopplung Client-PGM ruft DB-Server Web-Server ruft Datenbankserver nur HTML HTML+Javascript HTML+Applets Client-Technologien - SS 2004 - Prof. Dr. Stefan Böttcher Folie 30 Prof. Dr. Stefan Böttcher 15