Konfigurieren von Tomcat 5.5 und UTF-8 Codierung aller sendRedirect() Weiterleitungen?

Einer Anforderung an das Produkt, das wir bauen, ist, dass Ihre URL-Endpunkte sind semantisch sinnvoll, die Nutzer in Ihrer Muttersprache. Das bedeutet, wir müssen in UTF-8 codierte URLs unterstützen jedes alphabet unter der Sonne.

Wir möchte auch nicht sorgen zu müssen-installation Konfiguration Dokumentation für jede Anwendung die server und die version, die wir unterstützen, so wäre es schön, wenn wir erreichen könnten, dieses in-code. Möglicherweise ist dies nicht möglich, da durch die Zeit, die das Servlet hat die Anfrage erhalten, wurde es so codiert auf dem App-server, etc.

Habe ich bekommen, diese funktioniert (für meine ersten Anwendungsfall mit ISO-Latin-non-US-ASCII-Zeichen) von der Neueinrichtung von request-Pfad info:

String pathInfoEncoded = new String(httpServletRequest.getPathInfo().getBytes(), "UTF-8");

und diese dann analysieren.

Aber das funktioniert nicht, nach einer Umlenkung aus einem POST ein GET mit sendRedirect(). Die Anfrage ist Weg kommt bereits geflohen (also ö ist kodiert als %F6) und meine Methode oben nicht funktioniert.

Also ich denke, meine Frage ist, werde ich über das alles falsch? Und wenn ja, was ist das Gegenmittel für meine Unwissenheit? 🙂

Update : die Lösung gefunden. Das problem ist, dass das Servlet-API hat einige seltsame Verhalten mit Bezug auf die URL-Codierung vor dem senden der Umleitung. Sie müssen die URL-Codierung (Schutz der UTF-8-Zeichen), BEVOR Sie anrufen sendRedirect(). Die encodeRedirectURL () - Methode funktioniert nicht für Sie tun.

Diese Seite befasst sich mit: http://www.whirlycott.com/phil/2005/05/11/building-j2ee-web-applications-with-utf-8-support/

InformationsquelleAutor ubermensch | 2009-05-11

Schreibe einen Kommentar