Java servlets
This presentation is the property of its rightful owner.
Sponsored Links
1 / 16

Java-Servlets PowerPoint PPT Presentation


  • 109 Views
  • Uploaded on
  • Presentation posted in: General

Java-Servlets. Gliederung: Allgemeine Informationen zu Servlets Einsatz und praktische Nutzung von Servlets Servlet Lebenszyklus CGI versus Servlet Implementierung von Servlets. Allgemeine Informationen. Entwicklungsumgebung für Servlets

Download Presentation

Java-Servlets

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Java servlets

Java-Servlets

Gliederung:

  • Allgemeine Informationen zu Servlets

  • Einsatz und praktische Nutzung von Servlets

  • Servlet Lebenszyklus

  • CGI versus Servlet

  • Implementierung von Servlets


Allgemeine informationen

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)


Servlets applets

Servlets - Applets

Servlet

Applet

  • 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)


Einsatz von servlets

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


Praktische nutzung

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)


Servlet lebenszyklus

Servlet Lebenszyklus

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


Eine instanz viele threads

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


Cgi versus servlet

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)


Hello world

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>");

}

}

http://server:8080/servlet/HelloWorld


Implementierungshierarchie

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


Servlets und cookies

Servlets und Cookies

1. Anfrage

http://server:8080/servlet/MeinServlet

Cookie: 0x1234ab

Client

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.


Server side includes

Server-Side Includes

Webserver

.shtml file

<HTML>

>HEAD>

.

</HEAD>

<BODY>

.

<SERVLET CODE= Servlet1>

</SERVLET>

.

</BODY>

</HTML>

request

Servlet1

response


Verkettung von servlets

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


Javaserver pages

JavaServer Pages

Webserver

.jsp file

Java

Compiler

<HTML>

>HEAD>

.

</HEAD>

<BODY>

.

<%...............%>

.

</BODY>

</HTML>

request

Servlet1

response


Servlets und datenbanken

Servlets und Datenbanken

Webserver

Servlet Instanz

Connection Pool

(bei init() erzeugt)

request

lokale Variable

lokale Variable

lokale Variable

Connection

Connection

Connection

Connection

response

Datenbank

request

response

request

response


Servlets im ivs

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


  • Login