Jakarta Tomcat Webserver
Catalina Servlet Container
Container Components
Die Container Components basieren auf dem Interface Container, dem fundamentalem Interface des Servlet-Containers.
Container sind hierarchisch geordnet, sie haben einen Parent und einen oder mehrere Child-Container.
Die invoke(ServletRequest request,ServletResponse response) Methode ist die Bearbeitungsroutine des Containers: Ausführen von Anfragen, die vom Adapter oder einem Parent-Container kommen und Rückgabe des Response-Objektes. Der Container führt die auf seiner Hierarchieebene anstehende Arbeit aus und ruft die invoke()-Methode des geeigneten Child-Container für die untere Ebene auf.
Es gibt vier verschiedene Containerarten:
- Engine ist das höchstliegende Element. Sie repräsentiert die gesamte Servlet-Engine und hat einen oder mehrere Hosts als Child-Container. Als höchstes Container-Element hat sie keinen Parent-Container.
- Host repräsentiert einen auf der Engine laufenden virtual host. Er hat als Child-Container Context-Elemente.
- Context repräsentiert einen Context-Pfad über den auf Servlets zugegriffen werden kann. Jeder Host hat mindestens einen Context-Child-Container für den leeren Context-Pfad zur Bearbeitung nicht identifizierbarer Context-Pfade.
Context hat als Child-Container ein Wrapper-Element.
- Wrapper repräsentiert ein Servlet. Als unterstes Element der Hierarchie hat Wrapper keine Child-Container. Da ein Servlet über mehrer Contextpfade erreichbar sein kann, können mehrere Wrapper mit verschiedenen Context-Elementen als Parent Container für das gleiche Servlet stehen.
Innerhalb der invoke()-Methode des Containers wird seine service()-Methode aufgerufen. Bei einem Wrapper übernimmt die service()-Methode das Manegement des Servlet selbst, Aufruf des Servlet über seine service()-Methode, gegebenenfalls mit vorheriger Initialisierung und anschliessender Zerstörung über init() und destroy(). Bei den höheren Containern besteht die Aufgabe der service-Methode in Identifikation und Aufruf des richtigen Child-Containers.
Generell dienen die höheren Container als Ansatzpunkte für Bearbeitungen, die für alle Servlets in einem bestimmten Breich (z. B. eines Contextpfades oder Host) ausgeführt werden sollen (siehe Interceptor-Componenten).
Bei Verwendung von Tomcat als stand-alone sind alle Container vorhanden, bei add-on Einsatz kann auch auf Engine und Host verzichtet und direkt vom Server über Context-Container zugegriffen werden.
[ Seminar Linux und Apache ]
[ zurück ]
[ weiter ]