Kapitel 5 - Servlets Flashcards
Was sind Servlets?
Prinzipiell handelt es sich um serverseitigen Code
- Selbstprogrammierte Klassen, die auf HTTP-Anfragen reagieren
- HTTP-Anfragen werden an die Servlets delegiert
- Kommunikation mit dem Client durch den Container
- Softwarekomponenten einer Webanwendung
- Aufruf vom Webcontainer bei jeder HTTP-Anfrage
- Objekte werden vom Webcontainer erzeugt
Was sind die Vorteile von Servlets gegenüber anderen Programmiersprachen?
- Einmal geladene Servlets bleiben im Speicher
- Ausführung erfolgt in Threads statt in Prozessen
- Hohe Geschwindigkeit, da Servlets kompiliert werden
- Dank Java automatisch plattformunabhängig
- Einfacher Zugang zu fast allen Java APIs
Was ist ein Webcontainer?
- Stellt in Java programmierten Webserver dar
- Laufzeitumgebung für Servlets und Java Server Pages
- Technische Grundlage für weitreichende Webframeworks
Wie funktioniert der Webcontainer? (5)
- Der Webcontainer empfängt eine HTTP-Anfrage
- Zu jeder anfragbaren URL existiert eine Klasse (Servlet), welche die Anfrage bearbeiten kann
- Um die Anfrage zu bearbeiten, muss der Container nur eine spezielle Methode des entsprechenden Servletobjekts aufrufen
- Innerhalb der Methode müssen die zurückschickenden Daten erzeugt werden
- Der Server wandelt die generierte Antwort in eine HTTP-Antwort um. Anschließend schickt er die ANtwort zurück an den Client
Nennen Sie 3 Komponenten des Webcontainers
- Servletobjekt
- Requestobjekt
- Responseobjekt
Was macht das Servletobjekt?
- Reagiert auf HTTP-Anfragen mit einer Antwort
- Methoden zur Protokollierung im Serverprotokoll
- Methoden für den Zugriff auf den Servlet COntext
Was macht das Requestobjekt?
- Kapselt die empfangene HTTP-Anfrage
- Methoden für den Zugriff auf die Session und den Session Context
- Methoden zum Lesen und Schreiben von Cookies
- Methoden zum Lesen und Schreiben von Anfrageparametern
- Methoden, um Informationen über den Client zu ermitteln
Was macht das Responseobjekt?
- Kapselt die zu sendende HTTP-Antwort
- Methode zum Erzeugen eines PrintWriter für die Antwort
Was ist das Servlet-Interface?
Gehen Sie hierbei auch auf die Methode service() ein!
Definiert den Vertrag mit dem Container
- Gemeinsames Basisinterface aller Servletobjekte
- Schreibt die Lebenszyklusmethoden vor
- LEgt fest, wie Anfragen bearbeitet werden
Methode service() bearbeitet alle Anfragen
- Bekommt ein ServletRequest-Objekt übergeben
- Bekommt ein ServletResponse-Objekt übergeben
- Wirft ServletException oder IOException
Wie funktioniert das Deployment von Servlets?
- Kein direktes Hochladen auf den Server wie bei einer statischen Webseite möglich
- Servlets werden stattdessen als Web-Archiv deployed
- Die Ordnerstruktur muss eingehalten werden
- Der Deploymentdeskriptor ist ab Java7 optional
- Das Archiv enthält auch benötigte Ressourcen wie HTML-Dateien, Stylesheets und Bilder
Was ist der Deploymentdeskriptor? (4)
Welche Angaben müssen mindestens beinhaltet sein? (5)
- XML-Konfigurationsdatei einer Webanwendung
- Dient der Konfiguration des Deployments
- Wird zunehmend durch Annotationen im Quellcode ersetzt
- Ablageort im Web-Archiv: /WEB-INF/web.xml
Beinhaltet mindestens folgende Angaben
- Benennung aller verwendeten Servlets
- Initialisierung der Servlets mit Parametern
- Mapping von URLs zu Servlets
- Initialisierung und Mapping von Filter Objekten
- Konfiguration von Session Listener Objekten
Wie verwendet man die 3 Kontexte?
- Jedes Servlet hat Zugriff auf drei Kontextobjekte, um darin Objekte zwischen mehreren Aufrufen zwischenzuspeichern
- Verwaltung eines serverseitigen Zustands je Besucher
- Wiedererkennung eines Besuchers anhand einer Session ID
- Notwendig, um Logins / Warenkörbe…abzubilden
Nennen Sie die Methoden der Kontextobjekte. (4)
public void setAttribute(String name, Object value)
public Object getAttribute(String name)
public void removeAttribute(String name)
public Enumeration<string> getAttributeNames()</string>
Beschreiben Sie den Servlet Context und dessen Methoden (5)
Übergreifender Kontext für die gesamte Anwendung
Genau ein Servlet Context je Webanwendung
Zugriff durch: this.getServletContext
Methoden des Interfaces ServletContext
- Methoden, um Objekte an den Kontext zu binden
- Auslesen verschiedener Containerdaten (Version, …)
- Erzeugen von und Zugriff auf Filter
- Erzeugung und Zugriff auf Session Listener
- Auslesen der Initialisierungsparameter
Beschreiben Sie den Session Context und dessen Methoden (4)
Repsärsentiert eine Sitzung mit einem Benutzer
Überweindet die Zustandslosigkeit von HTTP
Fasst mehrere Seitenaufrufe logisch zusammen
Zugriff durch: request.getSession
Methoden des Interfaces HttpSession
- Methoden, um Objekte an den Kontext zu binden
- Sitzung beenden, Abfrage auf neue Sitzung
- Festlegen des Timeouts, nachdem die Sitzung verfällt
- Zugriff auf den Servlet Context