Einführung Servlets/JSPs

Slides:



Advertisements
Ähnliche Präsentationen
Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
Advertisements

Software Engineering Praktikum SS 2003
Software Engineering Praktikum WS 2002/03
Kurze Einführung in ASP
Internet-Datenbanken
Tomcat Web-Server installieren
Internetzugriff mit Strings und Streams
Java 2 Enterprise Edition (J2EE)
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Internet-Datenbanken Grundlagen des WWW HTML HTTP Web-Anbindung von Datenbanken Servlets JSP JDBC XML Datenmodell Schemabeschreibungssprachen Anfragesprachen.
Java: Dynamische Datentypen
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-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.
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Publikation von XML-Daten mit XSQL Pages. © Prof. T. Kudraß, HTWK Leipzig Vorteile von XSQL Pages einfache Generierung von XML-Dokumenten auf der Basis.
Hassan Bidani Jallal Alami Rahmouni FH Wiesbaden
Tomcat (I) Ende 1999 Jakarta-Projekt von Apache, IBM und Sun gegründet
Java Server Pages Implementierung eines Web-Service-Clients Pea 13: Maik Opitz, Martin Melle, Philipp Hake.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Filiale pea09 Die Einbindung der MySQL-Datenbank in das Servlet.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
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 Datenströme GK Informatik 1 Datenströme.
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.
Systementwicklungsprojekt:
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
Wir bauen uns eine Webapplikation!
Learning By Doing Thema 1: Dynamische Webseiten und Online Datenbanken (Jarka Arnold) Thema 2: Simulationen, Sound, Schnittstellen (Aegidius Plüss) Thema.
Applets Java für’s Web.
Seminar Internet - Technologie
Servlet III Java Webanwendung Webcontainer Web.xml
Die .NET Common Language Runtime
Die .NET Common Language Runtime
Learning By Doing TCP/IP Netzwerke mit TCP/IP Das Internet verwendet weitgehend das rund 30-jährige TCP/IP-Protokoll (TCP: Transmission Control Protocol,
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
Grundlagen: Client-Server-Modell
XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.
Praxis der Internet-Programmierung
Anwendungen Servlet II Formular Auswertung Zähler
Servlets Servlets und relevantes API Servlets & SQL via JDBC Implementierungs - Spezifika Architektur Überblick Vertikaler Prototyp / Spezifikation.
Turbine Konzepte und Dienste
Java Server Pages Sergej Keterling
Datenanbindung in Webapplikationen
Einführung in PHP.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Client-Server-Modell
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
Java-Applets und URLs APP Philip Graf, Andreas Bößl.
Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Java 2 Enterprise Edition (J2EE) Sascha Baumeister Software Architect Specification Lead JSR086 IBM Deutschland Entwicklung GmbH
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.
1 JavaServer Pages Stephan Baldes JavaServer Pages Einführung
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.
Internet-Technologien und Java
 Präsentation transkript:

Einführung Servlets/JSPs

HTML HyperText Markup Language Sprache, in der Webseiten geschrieben sind <html> <head> <title>Eine Beispielseite</title> </head> <body> <h1>Überschrift</h1> <p>Ein ziemlich sinnfreier Text, der nur demonstrieren soll, was HTML ist</p> </body> </html>

HTML Request und Response HTTP Request (Client: Browser, Programme) – URL http://server:port/pfad/seite?param1=wert1&param2=wert2 http://localhost:8080/demo/add?x=12&y=13 – Methode (GET/POST/…) – Body (z. B: Parameter bei POST, Datei-Uploads…) – Diverse andere Informationen (Header) HTTP Response (Web-Server) – Angeforderte Datei (HTML, GIF, …)

Servlet API Anwendungsprogrammierschnittstelle für server-seitige Java-Programme Servlet: gewöhnliche Java-Klasse, mit der sich der Webserver beliebig erweitern läßt Servlets stellen Dienste für den Client bereit, die dieser anfragen kann Anfrage und Antwort über Datenströme Servlet API bietet Unterstützung für Cookies und ein Session-Management

Servlet Implementierung Typisch: Unterklasse von HttpServlet oder GenericServlet doGet() oder/und doPost() überschreiben Alternativ: service() überschreiben

HelloWorld Servlet 1:import java.io.*; 2:import java.util.Date; 3:import javax.servlet.*; 4: 5:public class HelloWorld extends javax.servlet.GenericServlet { 6: public void service(ServletRequest req, ServletResponse res){ 7: res.setContentType("text/html"); 8: PrintWriter out = res.getWriter(); 9: Date d = new Date(); 10: out.println("<html><head></head><body>" + 11: "Hello World am " + d.toString() + 12: "</body></html>"); 13: } 14:}

Aufruf eines Servlets Anfrage: HTTP Request – URL in Browser eingeben (GET) – HTML Link klicken (GET) – HTML Formular abschicken (GET/POST) • Verarbeitung: Parameter holen, Datenbank abfragen, Berechnungen durchführen etc. • Ergebnis: HTTP Response – Wird vom Browser angezeigt – Evtl. automatisch weitere Requests, etwa Bilder

Input und Output Request-Objekt enthält Anfrageparameter request.getParameter(String paraName) • Response-Objekt stellt Ausgabekanal zur Verfügung response.getWriter() für Textausgabe response.getOutputStream() für Binärdaten

GET-Methode mit Hyperlink <html> <head> <title>Calculator</title> </head> <body> <a href="servlet/sep.CalculatorServlet?x=12&y=13"> Berechnung starten </a> </body> </html>

GET-Methode mit Formular <html> <head> <title>Calculator</title> </head> <body> <form action="servlet/sep.CalculatorServlet"> X: <input type="text" name="x"> Y: <input type="text" name="y"> <input type="submit"> </form> </body> </html>

POST-Method (nur Formular) <html> <head> <title>Calculator</title> </head> <body> <form action="servlet/sep.CalculatorServlet" method="post"> X: <input type="text" name="x"> Y: <input type="text" name="y"> <input type="submit"> </form> </body> </html>

Vergleich GET/POST GET Methode – Parameter sind Bestandteil des URLs ->Bei Bookmarks werden Parameter mitgespeichert ->Ungeeignet für Passwörter – Links benutzen automatisch GET Methode POST Methode – Parameter werden im Body des Requests übertragen – Notwendig z.B. bei Datei-Upload

import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class CalculatorServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int x = Integer.parseInt(request.getParameter("x")); int y = Integer.parseInt(request.getParameter("y")); PrintWriter out = response.getWriter(); out.println("<html><head><title>MyCalc</title></head>"); out.println("<body>"); out.println("Berechnung: "+x+" + "+y+" = " + (x+y)); out.println("</body>"); out.println("</html>"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response);

Web-Applikation • $TOMCAT_HOME/webapps/myapp • Struktur des Verz. myapp: – WEB-INF • web.xml • classes (eigene Klassen, Package-Struktur beachten!) • lib (Hilfsbibliotheken, z.B. db2java.zip, upload.jar) – index.html (index.jsp) & mgl. andere Dateien/Verz. • http://host:port/myapp/servlet/mypackage.MyServlet Servlet-Mapping: in Datei web.xml. Zugriff dann über http://host:port/myapp/myservlet

Servlet: Vor- u. Nachteile Vorteil: sehr flexibel Nachteil: HTML ist in Java-Quellcode eingebettet – Unübersichtlich – HTML-Editoren können nicht benutzt werden – Kein Syntax-Highlighting von HTMLQuellcode • Alternative: Java Server Pages (JSP)

Java Server Pages • JSP-Seiten als normale HTML-Seite geschrieben ("Template", statischer Teil), vermischt mit ein wenig Java (dynamischer Teil) • Java in speziellen "tags", z.B. <%...%> • JSP-Dateien müssen die Endung .jsp haben • JSP wird in ein Java-Servlet übersetzt, welches dann kompiliert wird. • Das Servlet arbeitet in der gewohnten Art und Weise. Browser sieht nur HTML

Beispiel <HTML> <BODY> Hello! The time is now <%= new java.util.Date() %> </BODY> </HTML> • Äquivalent: Hello! The time is now <% out.print(new java.util.Date()) %>

JSP-Syntax • Verschiedene JSP “tags” für versch. Zwecke <%= expression %> – expression ist evaluiert. Das Ergebnis in die HTML Seite eingefügt • <% code %> – code wird in service-Methode des Servlets eingefügt – Diese Konstruktion: scriptlet • <%! declarations %> – Die declarations werden in die Servlet-Klasse, nicht in eine Methode eingefügt • <%-- JSP Kommentar --%> (<!-- HTML -->)

JSP: Vordefinierte Variablen • request: das HttpServletRequest-Objekt • response: das HttpServletResponse-Objekt • session: die HttpSession assoziiert mit dem Request oder null wenn es keine Session gibt • out: JspWriter (ähnlich PrintWriter) zum Senden von Daten an den Client • Beispiel: Your hostname: <%=request.getRemoteHost() %> Äquivalent: Your hostname: <%out.print(request.getRemoteHost()) %>

Deklaration und Direktive • Global, beeinflußen das ganze Servlet • <%@ Direktive %> • Am wichtigsten: page-Direktive • <%@ page import="java.util.*" %> • Deklarationen: Definitionen von Variablen und Methoden <%! static final int PI = 3.1415926536; double u(double radius) { return 2*PI*r; } %> • Benutzung in der Seite: Umfang des Einheitskreises: <%= u(1.0) %>