Praxis der Internet-Programmierung

Slides:



Advertisements
Ähnliche Präsentationen
Dynamische WEB-Applikationen
Advertisements

M a r c – o l i v e r p a h l Informatik I – Kapitel 7 Klassen und höhere Datentypen Zusammenfassung des Kapitel 7 Küchlin, Weber, Einführung in die Informatik,
Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
Dominic Ziegler 12c Webprogrammierung.
DNS-Resolver-Mechanismus
Software Engineering Praktikum SS 2003
Software Engineering Praktikum WS 2002/03
Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,
Aufbau des Internets Überblick Prof. Dr. T. Hildebrandt
Internet-Datenbanken
Programmierkurs Java WS 98/99 Vorlesung 15 Dietrich Boles 17/02/99Seite 1 Programmierkurs Java Vorlesung im WS 1998/1999 am FB Informatik der Universität.
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Verteilte Software - Java - Prozedurale Programmierung 1
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Tomcat Web-Server installieren
Internetzugriff mit Strings und Streams
Seite 1 Reinhard Huber Anna Völkl ITTBA Apache Tomcat Anna Völkl, Reinhard Huber
Java 2 Enterprise Edition (J2EE)
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.
Java: Grundlagen der Sprache
Internet Protokolle und Formate 1.1 HTTP 1.2 HTML 1.3 SGML 2. XML 3. WAP Matthias Thränhardt Sebastian Weber.
Internet-Technologien und Java
Internet-Technologien und Java. Beispiel: Im Browser wird diese Zeile eingegeben. Wie nennt man diese eingegebene Zeile.
Dynamische Webseiten mit PHP Oder: LAMP - The open way.
Dynamische Webseiten mit PHP
Web-Anwendungen.
Dynamische Webseiten Java servlets.
Web-Anwendungen.
Hassan Bidani Jallal Alami Rahmouni FH Wiesbaden
Objektorientierte Programmierung JDK-Klassenbibliothek
Filiale pea09 Die Einbindung der MySQL-Datenbank in das Servlet.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 GUI Konstruktion: 1. Entwurf mit Papier und Bleistift / Post Ist 2. Eventuell.
Seminar Internet Technologien
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.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
© 2005 Pohlig – Taulien: Die Matheamatik-GUI als Applet Come Together 1 April 2005 Was ist ein Applet Ein Applet ist ein Javaprogramm, das die VM benutzt,
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Einführung Servlets/JSPs
Applets Java für’s Web.
Seminar Internet - Technologie
Servlet III Java Webanwendung Webcontainer Web.xml
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.
Java und Eclipse.
JSP Einführung Skripte Direktiven Tomcat 3.2 Version 1.1
Praxis der Internet-Programmierung
XML IV: Cocoon 2.
Servlets Servlets und relevantes API Servlets & SQL via JDBC Implementierungs - Spezifika Architektur Überblick Vertikaler Prototyp / Spezifikation.
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Web Application Engineering & Content Management.
Java Server Pages Sergej Keterling
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
Datenanbindung in Webapplikationen
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
Java-Applets und URLs APP Philip Graf, Andreas Bößl.
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Internet - Grundbegriffe Unterlagen zum Kurs "Wie erstelle ich eine Homepage?"
WINLearn Technische Umsetzung. Basistechnologie Oberfläche in HTML JSP (JavaServerPages) zur Datenauswertung Datenhaltung: Datenbank oder Filesystem JDBC.
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.
© 2008 TravelTainment The Amadeus Leisure Group Webanwendungen mit Java - HttpServlets 17.Dezember 2010 Sebastian Olscher Erstprüfer: Hon.-Prof. Dr. H.
 Präsentation transkript:

Praxis der Internet-Programmierung Servlet I

Statische Webseiten 1:1-Ausgabe der angeforderten Datei Dynamische Komponenten auf der Client-Seite: Scripts (ECMAScript, JavaScript,…) Plug-Ins (Java Applets, Macromedia Flash, …)

Dynamische Webseiten Erzeugung der Ausgabe zur Laufzeit "Web-Anwendung",

Server-seitige Technologien Common Gateway Interface (CGI) Ausführung in einem Webserver-externen Prozess kein Zugriff auf Ressourcen des Webservers je ein eigener Prozess pro Anfrage beliebige Sprachen möglich (C/C++, Perl, Java, …) Interpretiert / kompiliert

Server-seitige Technologien Server-seitige Skripte Serverside JavaScript SSJS (Netscape) Active ServerPages ASP (Microsoft) Hypertext Preprocessor PHP (Apache) JavaServer Pages JSP (Sun)

Bsp: ASP <HTML> <!-- This example displays the content of several ServerVariables. --> ALL_HTTP server variable = <%= Request.ServerVariables("ALL_HTTP") %> <BR> CONTENT_LENGTH server variable = <%= Request.ServerVariables("CONTENT_LENGTH") %> <BR> CONTENT_TYPE server variable = <%= Request.ServerVariables("CONTENT_TYPE") %> <BR> QUERY_STRING server variable = <%= Request.ServerVariables("QUERY_STRING") %> <BR> SERVER_SOFTWARE server variable = <%= Request.ServerVariables("SERVER_SOFTWARE") %> <BR> </HTML>

Java Servlet Framework

JSEE Versionen Java Servlet 2.2 (17.12.1999) stabil "write once, serve anywhere“ stabil: Servletcontainer: Tomcat 3.3 Servlet API: 2.2 JSP: 1.1 für Entwickler: Servletcontainer: Tomcat 4.0 Servlet API: 2.3 JSP: 1.2 stabil

Servlets die Antwort auf CGI Programmierung Servlets laufen auf einem Webserver in einem Servletcontainer. Aufgaben: Zugriff auf REQUEST Erzeugen einer Antwort Formatierung der Antwort in einem Dokument Senden des RESPONSE kein eigenständiges Programm! keine main()-Methode!

Vorteile Alle Servlets können in einer JVM laufen Erleichtert die Kommunikation Portabilität / Stabilität / Platformunabhängikeit Sicherheit nur eine Sprache Funktionalität durch Methodenaufrufe auf das Servlet Objekt Servlet bleibt im Speicher erhalten Schnellem Starten bei einem neuen Request wenig Memory overhead

javax.servlet C:\Programme\jbuilder5\extras\jakarta-tomcat-src\src\webpages\docs\api

Lebenszyklus eines Servlet Laden der Servlet-Klasse Erzeugen einer Instanz Ausführen der init()-Methode prüfen auf neuere Version des *.class-Files: allenfalls neu laden Ausführen der Methode service() z.B. Herunterfahren des Servers Ausführen der destroy()-Methode garbage collection

Programmierung eines Servlets erweitern die abstract class javax.servlet.http.HttpServlet (Subklasse von GenericServlet) service() wird nicht überschrieben überschreiben der Methoden doGet(), doPost(), doPut(), doDelete()

HELLO WORLD package hello_world; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.println("<HTML>"); out.println("<HEAD><TITLE>Hello World</TITLE></HEAD>"); out.println("<BODY>"); out.println("<BIG>Hello World</BIG>"); out.println("</BODY></HTML>"); }

Zugriff auf REQUEST Interface HttpServletRequest public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { Interface HttpServletRequest getParameter()/getParametetValues(): Zugriff auf die Name/Wert-Paare des REQUESTS getRemoteAddr(): IP-Adresse des Clients getProtocol(): benutztes Protokol

HttpServletRequest API

Zugriff auf RESPONSE public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { Interface HttpServletResponse Ausgabe mittels java.io.PrintWriter PrintWriter out = res.getWriter(); MIME-Format: res.setContentType(CONTENT_TYPE); ASCII-Formate: text/html, text/xml, text/plain,…

Hello II package hello_world; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Hello extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); String name = req.getParameter("name"); out.println("<HTML>"); out.println("<HEAD><TITLE>Hello, " + name + "</TITLE></HEAD>"); out.println("<BODY>"); out.println("Hello, " + name); out.println("</BODY></HTML>"); }

Hello World Form <HTML> <HEAD> <TITLE>Introductions</TITLE> </HEAD> <BODY> <FORM METHOD=GET ACTION="/servlet/hello_world.Hello"> If you don't mind me asking, what is your name? <INPUT TYPE=TEXT NAME="name"><P> <INPUT TYPE=SUBMIT> </FORM> </BODY> </HTML>

Request Headers IE 5.5

Request Headers Netscape 6.0

HTTP Request Header import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class Request_all2 extends HttpServlet { private static final String CONTENT_TYPE = "text/html"; /**Initialize global variables*/ public void init(ServletConfig config) throws ServletException { super.init(config); }

HTTP Request Header /**Process the HTTP Get request*/ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); String title = "Servlet Example: Showing Request Headers"; out.println(ServletUtilities.headWithTitle(title) + "<BODY BGCOLOR=\"#FDF5E6\">\n" + "<H1 ALIGN=CENTER>" + title + "</H1>\n" + "<B>Request Method: </B>" + request.getMethod() + "<BR>\n" + "<B>Request URI: </B>" + request.getRequestURI() + "<BR>\n" + "<B>Request Protocol: </B>" +

HTTP Request Header request.getProtocol() + "<BR><BR>\n" + "<TABLE BORDER=1 ALIGN=CENTER>\n" + "<TR BGCOLOR=\"#FFAD00\">\n" + "<TH>Header Name<TH>Header Value"); Enumeration headerNames = request.getHeaderNames(); while(headerNames.hasMoreElements()) { String headerName = (String)headerNames.nextElement(); out.println("<TR><TD>" + headerName); out.println(" <TD>" + request.getHeader(headerName)); } out.println("</TABLE>\n</BODY></HTML>");

HTTP Request Header /**Process the HTTP Post request*/ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } /**Clean up resources*/ public void destroy() {

Praktikum SERVLET Programmierung I Hello World Servlet Eigenes Servlet: Gibt aktuelle Zeit aus Begrüsst Sie mit Morgen oder Abend Gibt erkennt ihren Browser Sagt Ihne ihre IP Adresse Zeigt Ihnen den Query-String an.

Links http://java.sun.com/products/servlet/ http://developer.java.sun.com/developer/technicalArticles/Servlets/ http://java.sun.com/docs/books/tutorial/servlets/ http://www.servlets.com/index.tea http://archive.coreservlets.com/ http://www.oreilly.com/catalog/jservlet2/ http://java.sun.com/j2ee/j2sdkee/ http://java.sun.com/products/servlet/2.2/javadoc/ http://www.ifi.unibas.ch/Courses/JavaTech/course/1306Schaub/index.htm

Environement Variablen CGI-Variable

CGI Variable CGI-Variable AUTH_TYPE CONTENT_LENGTH CONTENT_TYPE Art der Autentisation (basic oder digest) CONTENT_LENGTH # Bytes mit post gesendet CONTENT_TYPE MIME Typ von anghängten Daten DOCUMENT_ROOT Wurzelverzeichnis des Webservers PATH_INFO Pfad ohne Query-String PATH_TRANSLATED wirklicher Pfad auf dem Server QUERY_STRING REMOTE_ADDR IP Adresse des Client CGI-Variable

CGI Variable REMOTE_HOST REMOTE_USER REQUEST_METHOD SCRIPT_NAME Domainname vom Host REMOTE_USER Username (nur bei Authentification) REQUEST_METHOD Get,Post,Put,... SCRIPT_NAME Pfad des Servlet SERVER_SOFTWARE CGI-Variable

Neues Servlet im JBuilder New Servlet

Rechte Maustaste Web Run