Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Praxis der Internet-Programmierung Servlet I. Statische Webseiten 1:1-Ausgabe der angeforderten Datei Dynamische Komponenten auf der Client-Seite: Scripts.

Ähnliche Präsentationen


Präsentation zum Thema: "Praxis der Internet-Programmierung Servlet I. Statische Webseiten 1:1-Ausgabe der angeforderten Datei Dynamische Komponenten auf der Client-Seite: Scripts."—  Präsentation transkript:

1 Praxis der Internet-Programmierung Servlet I

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

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

4 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

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

6 Bsp: ASP ALL_HTTP server variable = CONTENT_LENGTH server variable = CONTENT_TYPE server variable = QUERY_STRING server variable = SERVER_SOFTWARE server variable =

7 Java Servlet Framework

8 JSEE Versionen Java Servlet 2.2 ( ) "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

9 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!

10 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

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

12 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

13 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()

14 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(" "); out.println(" Hello World "); out.println(" "); out.println(" Hello World "); out.println(" "); }

15 Zugriff auf REQUEST 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

16 HttpServletRequest API

17 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,…

18 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(" "); out.println(" Hello, " + name + " "); out.println(" "); out.println("Hello, " + name); out.println(" "); }

19 Hello World Form Introductions If you don't mind me asking, what is your name?

20 Request Headers IE 5.5

21 Request Headers Netscape 6.0

22 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); }

23 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) + " \n" + " " + title + " \n" + " Request Method: " + request.getMethod() + " \n" + " Request URI: " + request.getRequestURI() + " \n" + " Request Protocol: " +

24 HTTP Request Header request.getProtocol() + " \n" + " \n" + " Header Name Header Value"); Enumeration headerNames = request.getHeaderNames(); while(headerNames.hasMoreElements()) { String headerName = (String)headerNames.nextElement(); out.println(" " + headerName); out.println(" " + request.getHeader(headerName)); } out.println(" \n "); }

25 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() { }

26 Praktikum SERVLET Programmierung I 1.Hello World Servlet 2.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.

27 Links

28 Environement Variablen CGI-Variable

29 CGI Variable AUTH_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

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

31 New Neues Servlet im JBuilder Servlet

32

33

34 Rechte Maustaste Web Run


Herunterladen ppt "Praxis der Internet-Programmierung Servlet I. Statische Webseiten 1:1-Ausgabe der angeforderten Datei Dynamische Komponenten auf der Client-Seite: Scripts."

Ähnliche Präsentationen


Google-Anzeigen