Ein Servlet muss in der Lage sein, mehrere Anfragen von mehreren Clients zu bearbeiten. Da eine beliebige Anzahl von Clients gleichzeitig auf ein Servlet zugreifen kann, muss jede Methode außer init in einer Thread-sicheren Weise implementiert werden.
Abbildung A zeigt die Beziehung zwischen mehreren Client-Anfragen und einer einzelnen Servlet-Instanz.
Abbildung A: Mehrere Client-Anfragen an ein einzelnes Servlet
Wie Cookies zerkrümeln
Da ein einzelnes Servlet Anfragen von mehreren Clients verarbeitet, braucht das Servlet ein Verfahren, um festzustellen, von welchem Client die Anfrage stammt. Das am häufigsten verwendete Verfahren für die Identifizierung von Client-Anfragen ist der Einsatz von HTTP-Cookies. HTTP-Cookies sind beliebige Stückchen von Information, die zwischen einem Browser-basierten Client und einem Server mithilfe von HTTP-Headern ausgetauscht werden.
Erhält ein Servlet eine Anfrage von einem Client mit aktivierten Cookies, kann das Servlet die Informationen in diesem Cookie verwenden, um festzustellen, zu wem der Client gehört, und entsprechend intelligent antworten. Das mag sich trivial anhören, aber es fügt der Interaktion zwischen einem Client und einer Servlet-basierten Web-Anwendung eine ganz neue Dimension hinzu. Insbesondere erlaubt diese Funktion einer Web-Anwendung, den Status eines Clients zwischen mehreren Anfragen zu speichern und wiederherzustellen.
Durch die Fähigkeit eines Servlets, den Client-Status zu speichern, lässt sich der Dialog zwischen einem Client und einer Servlet-basierten Web-Anwendung aufrechterhalten, anstatt pro Client nur eine einzige Request/Response-Transaktion zuzulassen. Die Java-Servlet-API stellt eine Klasse namens Cookie zur Verfügung – diese Klasse repräsentiert Cookie-Objekte, die per Anfrage (Request) abgerufen und per Antwort (Response) gespeichert werden können, und man kann mit ihr alle Informationen in einem Cookie abrufen oder speichern. Das Beispiel in Listing C fragt alle Cookies eines Requests ab, zeigt Informationen über jeden Cookie an und erstellt dann einen neuen Cookie und fügt ihn der Response hinzu.
Neueste Kommentare
Noch keine Kommentare zu Servlets als einfache Alternative zu CGI
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.