Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Java-Servlets Gliederung: Allgemeine Informationen zu Servlets

Ähnliche Präsentationen


Präsentation zum Thema: "Java-Servlets Gliederung: Allgemeine Informationen zu Servlets"—  Präsentation transkript:

1 Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
Einsatz und praktische Nutzung von Servlets Servlet Lebenszyklus CGI versus Servlet Implementierung von Servlets

2 Allgemeine Informationen
Entwicklungsumgebung für Servlets Java Servlet Development Kit (JSDK) beinhaltet eine Servlet-Engine um die entwickelten Servlets testen zu können implementieren  übersetzen  mit „servletrunner“ testen Lebensraum für Servlets Webserver mit eingebauter VM für Servlets (Sun Java Web Server, Netscape`s Enterprice Server, Lotus Domino Go Webserver) Webserver mit Erweiterungmodul für Servlets (Apache, IBM`s WebSphere Application Server)

3 Servlets - Applets Servlet Servlet Applet Server (Webserver)
ohne GUI-Komponente (faceless) JAVA-Programme auf Server Seite erweitern Webserver um dynamische Komponenten Ausführung in VM des Servers nutzen die lokalen Ressourcen des Servers (Filesystem, DB) mit GUI-Komponente JAVA-Programm auf Client Seite wird vom Server heruntergeladen Ausführung in der VM des Clients (Browser) keine Möglichkeit die lokalen Ressourcen des Clients zu nutzen Server (Webserver) Anfrage (Request) Servlet Antwort (Response)

4 Einsatz von Servlets Dynamische Generierung von HTML Seiten
Client eröffnet Verbindung zum Server HTTP Methode GET (ein Dokument, ein Diagramm, ein Ergebnis einer Datenbankabfrage) HTTP Methode POST (eine Kreditkarten Nummer, neue Daten für eine Datenbank) Antwort ist eine dynamisch erzeugte komplette HTML Seite Server-Side Includes (SSI) Servlets eingebettet in HTML Seiten mit Hilfe des <SERVLET> tag Beispiel ist ein „Counter“ der in die statischen HTML Seiten eingefügt werden soll JavaServer Pages Java Code zwischen <% %> tag wird ausgeführt, Ergebnis als String in HTML Seite Zukunft besteht in der Kombination von JavaServer Pages und JavaBeans

5 Praktische Nutzung Servlet verarbeitet Daten aus dem Secure Hypertext Transfer Protokoll (Kreditkarteninformationen aus einer HTML Seite). Threads der Servlets lassen sich synchronisieren (Online-Konferenz mit mehreren Clients). Aufgabenteilung durch Zusammenarbeit von mehreren Servlets auf verschiedenen Rechnern um Überlastsituationen abzufangen (Lastausgleich). Nach Verbindungsaufnahme zwischen Client und Server über HTTP-Protokoll kann über ein frei wählbares Protokoll kommuniziert werden. Dynamische Code Erweiterungen sind möglich (Java Bytecode zur Laufzeit auf den Server laden und ausführen)

6 Servlet Lebenszyklus init() service() destroy() Erste Anfrage
an Servlet Webserver lädt das Servlet und instantiiert es Anfrage an Servlet Webserver initialisiert das Servlet: init() init() Anfrage an Servlet Servlet bearbeitet die Anfragen: service() service() Anfrage an Servlet Webserver löscht das Servlet: destroy() destroy() Webserver wird beendet

7 Eine Instanz viele Threads
Webserver Beispiel: Counter Problem: keine Konsistenz im Filesystem Lösung: Block muß synchronized sein request Thread request Thread Servlet request Thread request Thread

8 CGI versus Servlet Leistung:
Servlets werden bei der ersten Anfrage initalisiert und bleiben nach der Abarbeitung im Speicher des Servers erhalten (CGI Prozesse werden immer neu gestartet) Plattformunabhängigkeit: Servlets sind auf beliebiger Plattform lauffähig (Perl basierte CGI-Skripte sind übertragbar, C oder C++ erfordern eine Portierung) Wiederverwendbarkeit: Servlets können als Klassen importiert und an anderer Stelle verwendet werden (CGI sind meist isolierte Anwendungen) Sicherheit: Security Manager von Java verhindert Ressourcenmissbrauch (keine solche Funktion bei CGI) Lastverteilung: Servlets unterstützen Lastverteilung zwischen Servern (CGI nur mit extremen Aufwand realisierbar)

9 Hello World http://server:8080/servlet/HelloWorld 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>"); }

10 Implementierungshierarchie
Servlet Interface Package javax.servlet allgemein für Client-Server-Architektur GenericServlet abstrakte Klasse HTTPServlet Package javax.servlet.http Http Spezialisierungen abstrakte Klasse MeinServlet

11 weitere Anfragen mit Session ID
Servlets und Cookies 1. Anfrage Client Cookie: 0x1234ab Server Antwort mit Cookie weitere Anfragen mit Session ID Session ID: 0x1234ab user:“abed“ login at: “17:33“ Session-Objekt Cookie ist String Objekt (bei Servlets ID der Sitzung). Cookie kann Informationen beliebiger Art über den Client aufnehmen und auf der lokalen Festplatte des Clients speichern. Bei einem erneuten Aufruf des Servlets wird der Cookie wieder zurückgeliefert und kann vom Servlet ausgewertet werden.

12 <SERVLET CODE= Servlet1>
Server-Side Includes Webserver .shtml file <HTML> >HEAD> . </HEAD> <BODY> <SERVLET CODE= Servlet1> </SERVLET> </BODY> </HTML> request Servlet1 response

13 Verkettung von Servlets
Webserver Server läßt alle Anfragen bezüglich einer URL alle Servlets der Kette durchlaufen. Kette wird nur bei Bedarf durchlaufen (on the fly) Beispiele: dynamisches Übersetzen des Textes einer HTML Seite in die Landessprache Filter mit verschiedenster Funktionalität Servlet1 request Servlet2 Servlet3 response

14 JavaServer Pages Webserver .jsp file request response Java Compiler
<HTML> >HEAD> . </HEAD> <BODY> <% %> </BODY> </HTML> request Servlet1 response

15 Servlets und Datenbanken
Webserver Servlet Instanz Connection Pool (bei init() erzeugt) request lokale Variable Connection response Datenbank request response request response

16 Servlets im IVS Servlet Entwicklungsumgebung (JSDK)
Webserver mit Servlet Erweiterung auf „freyr“ Projekte Counter der Webseiten der AG Volltextsuche über die Webseiten der AG Servlets zur Softwaremessung


Herunterladen ppt "Java-Servlets Gliederung: Allgemeine Informationen zu Servlets"

Ähnliche Präsentationen


Google-Anzeigen