====== Character-Encoding bei Servlets auf UTF-8 ändern ======
Normalerweise sollte der Browser des Clients die Kodierung der Parameter mitschicken. Fehlt diese Angabe, nehmen einige Web-Server automatisch ISO-8859-1 an. Dies ist jedoch oft nicht erwünscht und kann zu Problemen führen. Möglicherweise werden Parameter nicht richtig interpretiert, da der Server die GET- und POST-Parameter falsch dekodiert. Um die Kodierung auf UTF-8 zu ändern, müssen nur wenige Änderungen vorgenommen werden.\\
===== HTML =====
Jede HTML-Seite sollte innerhalb des "head"-Tags diesen Eintrag haben:
===== Apache Tomcat =====
==== web.xml ====
Folgender Text muss sich in der Datei web.xml innerhalb des "webapp"-Tags befinden:
Parameter-Encoding
org.apache.catalina.filters.SetCharacterEncodingFilter
encoding
UTF-8
Parameter-Encoding
/*
Diese Angaben setzen einen UTF-8-Filter auf alle Servlets (Wildcard /*). Die verwendete Klasse ''org.apache.catalina.filters.SetCharacterEncodingFilter'' ist ab einer bestimmten Version (7.0.*) in Tomcat integriert.
==== server.xml ====
Schlussendlich muss die Kodierung noch in der Server-Konfiguration angegeben werden. Die Datei server.xml befindet sich im Ordner "conf" des Server-Verzeichnisses.
===== Jetty =====
Bei Jetty, dem unter anderem im Google App Engine verwendeten Server, muss nur folgender Code in jedes Servlet eingebaut werden:
request.setCharacterEncoding("UTF-8");
''request'' ist das vom Server an die Methoden ''doGet()'' und ''doPost()'' bzw. ''processRequest()'' übergebene ''HttpServletRequest''-Objekt. Dieser Aufruf muss natürlich vor jeder Parameter-Abfrage geschehen. Am praktischsten erledigt man das mit einer gemeinsamen Basisklasse für alle Servlets, die diese Methode automatisch aufruft.