Jakarta Tomcat Webserver
Catalina Servlet Container
Interceptor Components
Für jeden Container kann ein Stack von Interceptor-Objekten definiert werden. Diese werden aus der invoke()-Methode des Containers folgendermassen aufgerufen:
- die preService()-Methoden der Interceptoren werden aufgerufen, beginnend mit dem zuletzt hinzugefügten Interceptor.
- wenn alle preService()-Methoden true zurücklieferten wird die service()-Methode des Containers wird aufgerufen.
- die postService()-Methoden der Interceptoren werden aufgerufen, beginnend mit dem zuerst hinzugefügten Interceptor.
- sollte die preService()-Methode eines Interceptors false statt true zurückliefern, werden alle Aufrufe bis zu seiner postService()-Methode übersprungen. In diesem Fall wird das Response-Objekt wird aus den Daten der postService()-Methode des Interceptors gefüllt, z.B. beim prüfen einer Zugangsberechtigung die Meldung "Zugriff verweigert", wenn die preService()-Methode ferstgestellt hat, das keine Zugangsberechtigung vorlag.
Beispiele für Interceptoren:
- Überprüfen von Anfragen auf Korrektheit (Custom Request Validation)
- Überprüfen von Zugangsberechtigungen (Antwort ist dann eine Sicherheitsabfrage)
- Performance Measurement: Zeitnahme zwischen preService() und postService() für die dazwischenliegenden Komponenten.
- erzeugen von Logeinträgen
Die Interceptor-Architektur in Catalina unterstützt zusätzliche Funktionen zu der in der Servlet API beschriebenen Request/Response Verarbeitung, wie z.B. Horchen auf Anfragen auf dem gesamten Server, virtual Host oder Servlet Context-Ebene.
[ Seminar Linux und Apache ]
[ zurück ]
[ weiter ]