autoRequestEncoding und autoResponseEncoding
Ab WebSphere Application Server Version 5 legt der Web-Container nicht mehr automatisch die Codierungen für Anforderung und Antwort sowie die Antwortinhalttypen fest. Die Programmierer müssen diese Werte mit den verfügbaren Methoden der Spezifikation Servlet 2.3 (oder höher) festlegen. Wenn Programmierer sich gegen die Verwendung von Zeichencodierungsmethoden entscheiden, können sie die Erweiterungen autoRequestEncoding und autoResponseEncoding angeben, die dem Anwendungsserver ermöglichen, Codierungswerte und Inhaltstyp festzulegen.
Gültige Werte für die Erweiterungen autoRequestEncoding und autoResponseEncoding sind true bzw. false. Der Standardwert für beide Erweiterungen ist false. Wenn für beide Erweiterungen, autoRequestEncoding und autoResponseEncoding, der Wert false festgelegt ist, wird die Zeichencodierung für Anforderung und Antwort auf den Standardwert der Servlet-Spezifikation, d. h. ISO-8859-1 gesetzt. Auch wenn der Wert für eine Antwort auf false eingestellt ist, kann der Web-Container den Inhaltstyp einer Antwort nicht definieren. Wenn der Client die Zeichenverschlüsselung im Anforderungsheader definiert oder wenn der Code die Methode setCharacterEncoding(String encoding) umfasst, sind verschiedene Zeichenverschlüsselungen möglich.
Wenn der autoRequestEncoding-Wert auf true eingestellt ist, der Client die Zeichenverschlüsselung nicht im Anforderungsheader angegeben hat und der Code die Methode setCharacterEncoding(String encoding) nicht umfasst, versucht der Web-Container, die richtige Zeichenverschlüsselung für die Anforderungsparameter und die Anforderungsdaten festzulegen.
Ändern Sie mit einem Assembliertool die Standardwerte für die Erweiterungen autoRequestEncoding und autoResponseEncoding.
Der Web-Container führt jeden Schritt in der folgenden Liste durch, bis eine Übereinstimmung gefunden wurde:
- Prüft den Zeichensatz (charset) im Content-Type-Header.
- Versucht, die Locale des Servers anhand von definierten Eigenschaften einem Zeichensatz zuzuordnen.
- Versuchen Sie, die Systemeigenschaft DEFAULT_CLIENT_ENCODING zu verwenden, falls diese definiert ist.
- Verwendet die Zeichencodierung ISO-8859-1 als Standardeinstellung.
Wenn der autoResponseEncoding-Wert auf true eingestellt ist, der Client die Zeichencodierung nicht im Anforderungsheader angegeben hat und der Code die Methode setCharacterEncoding(String encoding) nicht beinhaltet, geht der Web-Container wie folgt vor:
- Versucht, den Inhaltstyp und die Zeichencodierung der Antwort anhand der Informationen im Anforderungsheader zu bestimmen.
- Verwendet die Zeichencodierung ISO-8859-1 als Standardeinstellung.