$KK(HttpServletRequest Interface) $R(Objective) Using the HttpServletRequest interface, write code to retrieve HTML form parameters from the request, retrieve HTTP request header information, or retrieve cookies from the request. $R\ Hier die Methoden des Interfaces die für dieses Objective interessant ist. $S() public interface ServletRequest { public String getParameter(String name); public Enumeration getParameterNames(); public String[] getParameterValues(String name); public Map getParameterMap(); ... } $S\ $S() public interface HttpServletRequest extends ServletRequest { public Cookie[] getCookies(); public long getDateHeader(String name); public String getHeader(String name); public Enumeration getHeaders(String name); public Enumeration getHeaderNames(); public int getIntHeader(String name); ... } $S\ $KKK(Auslesen der Parameter) Parameter werden als key value Paare gespeichert. Unter einem Schlüssel können auch mehrere Werte gespeichert sein. * public String getParameter(String name); Es wird der Wert des Parameters name mitgegeben, oder null. Falls unter dem Paramter name mehrere Werte gespeichert sind, wird der erste zurückgegeben. * public Enumeration getParameterNames(); Liefert die Schlüssel aller Parameter der Anfrage zurück. Hat die Anfrage kein Parameter, so wird eine leere Enumeration zurückgegeben. * public String[] getParameterValues(String name); Diese Methode sollte verwendet werden, falls mehrere Werte unter dem Parameter name gespeichert sind. Gibt falls es den Parameter name nicht gibt null zurück. * public Map getParameterMap(); Gibt eine java.util.map aller Parameter mit. Diese map kann nicht verändert werden. Die Schlüssel sind als Strings die Parameter werden jeweils als Array von Strings mitgegeben. $KKK(Auslesen des Headers) * public String getHeader(String name); Es wird der Wert des Headers name mitgegeben, oder null. Falls unter dem Header name mehrere Werte gespeichert sind, wird der erste zurückgegeben. * public Enumeration getHeaders(String name); Diese Methode sollte verwendet werden, falls mehrere Werte unter dem Header name gespeichert sind. Gibt falls es den Header name nicht gibt null zurück. * public Enumeration getHeaderNames(); Liefert die Schlüssel aller Header der Anfrage zurück. Hat die Anfrage kein Parameter, so wird eine leere Enumeration zurückgegeben. * public int getIntHeader(String name); Gibt es unter dem Parameter name keinen Header, wird -1 zurückgegeben. Ist der Wert nicht als Integer konvertierbar, so wird eine NumberFormatException geworfen. * public long getDateHeader(String name); Es wird die Anzahl der Millisekunden seit 1.1.1970 zurückgegeben. Gibt es unter dem Parameter name keinen Header, wird -1 zurückgegeben. Ist der Wert nicht als long konvertierbar, so wird eine IllegalArgumentException geworfen. $KKK(Auslesen der Cookies) Unter Cookies werden - meist kleine- Datenstückchen im Textformat verstanden, die ein Webserver bei der Antwort auf eine Anfrage auf der Festplatte eines Clienten ablegt. Ein Cookie hat mindestens einen Namen und einen Wert, und muss beim Constructor mitgegeben werden. $S() public Cookie(String name, String value) $S\ Ein Cookie kann unter anderem folgende Attribute enthalten: * comment - beschreibt die Funktion eines Cookies * max-age - Anzahl von Millisekunden in der das Cookie gültig ist. -1 beschränkt den Cookie auf einen Zeitpunkt bis der Browser geschlossen ist. * path - gibt den URL Pfad der Seiten an, die das Cookie lesen dürfen. Beachte es dürfen 2 Cookies mitdenselben Namen aber unterschiedlichen Pfaden abgespeichert werden. * domain - legt durch ein Zeichenmuster fest, dass der Server, zu dem das Cookie zurückgesendet wird, Mitglied der angegebenen Domain sein muss. * secure - gibt an, dass das Cookie nur für SSL Verbindungen verwendet werden darf. * version - Protokollversion mit der das Cookie übereinstimmet Die Cookies die das Servlet lesen darf bekommt man durch: * public Cookie[] getCookies(); Sind keine Cookies vorhanden wird der Wert null zurückgegeben.