** Hinweise zur Migration von Tomcat 7 auf Tomcat 8 **
Als zum Zeitpunkt von Tomcat7 Japanisch in den Abfrageparameter von GET aufgenommen wurde, wurden die Zeichen verstümmelt. Der Einflussbereich war zu groß, um server.xml auf useBodyEncodingForURI = "true" zu setzen Zuvor wurden die problematischen Apps wie unten gezeigt einzeln behoben.
String param = new String(parameter.getBytes("ISO_8859_1"));
Ab Tomcat8 werden die Zeichen jedoch verstümmelt, wenn die oben genannte Unterstützung bereitgestellt wird, und die Unterstützung ist nicht mehr erforderlich.
Tomcat7: http://tomcat.apache.org/tomcat-7.0-doc/config/ajp.html Tomcat8: http://tomcat.apache.org/tomcat-8.0-doc/config/ajp.html
Beim Vergleich der Dokumente ist die Erklärung von "URIEncoding" anders.
Tomcat7
This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used.
Geben Sie die URI-Codierung des Anforderungsparameters zum Zeitpunkt von GET an. ** ISO-8859-1 ** wird verwendet, wenn keine URIEn-Codierung angegeben ist.
Tomcat8
This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, UTF-8 will be used unless the org.apache.catalina.STRICT_SERVLET_COMPLIANCE system property is set to true in which case ISO-8859-1 will be used.
Geben Sie die URI-Codierung des Anforderungsparameters zum Zeitpunkt von GET an. ** UTF-8 ** wird verwendet, wenn URIEncoding nicht angegeben ist. Wenn jedoch die Systemeigenschaft org.apache.catalina.STRICT_SERVLET_COMPLIANCE auf true gesetzt ist, wird ** ISO-8859-1 ** verwendet.
Das Verhalten, wenn URIEncoding nicht angegeben ist, hat sich geändert.
Ich habe versucht, die Systemeigenschaft "org.apache.catalina.STRICT_SERVLET_COMPLIANCE" auf "true" zu setzen, aber
org.apache.catalina.STRICT_SERVLET_COMPLIANCE
scheint eine Option zu sein, um den Unterschied aufgrund der Versionsänderung von Tomcat zu beseitigen.
Da der Einflussbereich zu groß ist, habe ich beschlossen, "ISO-8859-1", die Standardeinstellung von Tomcat7, für "URIEncoding" anzugeben.
conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
redirectPort="8443"
URIEncoding="ISO-8859-1" />
Recommended Posts