Ich suche nach Hilfe, um alle meine Ebenen im Stapel auf UTF-8-Kodierung zu bringen.JSP/GlassFish: So richten Sie die UTF-8-Kodierung korrekt ein
fand ich diesen schönen Artikel:
http://www.javapractices.com/topic/TopicAction.do?Id=206
Beschreibung der drei Orte, die ich über Codierung zu kümmern. Da meine (1) Oracle-Datenbank derzeit auf UTF-8 eingestellt ist, müssen sich der (2) Browser und (3) Server Sorgen machen.
Ich fand auch dieses ausführlichen Artikel
http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html#JSPServletRequest
die ich weiter unten folgen bin versucht, aber mit ein paar Anfängerfragen über die Umsetzung.
den Browser zu beheben, habe ich folgende an der Spitze jeder JSP-Seite umfassen sorgte dafür:
<%@page pageEncoding="UTF-8"%>
(als Referenz siehe here).
den Server zu adressieren, stellte ich sicher, die folgende Zeile in der Java-Servlet und JSP-Seiten zu schließen, bevor Sie eine request.getParameter()
oder request.getAttribute()
Anweisung ausgeben:
request.setCharacterEncoding("UTF-8");
Da ich Glassfish 3.1.2, bin mit I verstehe, dass UTF-8 standardmäßig nicht verwendet wird, ich muss es also irgendwie manuell einstellen.
Ich habe viele Websites gesehen, die über eine Datei mit dem Namen glassfish-web.xml
sprechen. Ist dieser Teil des normalen Glasfischs installiert? Ich weiß nicht, wo ich es finden kann. Ich habe die Datei web.xml
in meinem Ordner WEB-INF
für meine Webanwendung verwendet. Könnte jemand mir helfen, herauszufinden, ob ich diese web.xml
Datei ändern muss, oder muss ich eine neue Datei namens glassfish-web.xml
finden oder erstellen, um die Codierung für Glassfish zu konfigurieren?
Meine web.xml
Datei beginnt mit:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
...
Für die JSP/Servlet-Anfrage, ich die folgende Zeile in der web.xml
Datei enthalten
<parameter-encoding default-charset="UTF-8"/>
Ist das OK in der web.xml
Datei zu setzen? Oder muss es in irgendeine glassfish-web.xml
Datei gehen?
Für die JSP/Servlet-Antwort, habe ich folgendes in meiner web.xml
Datei (akzeptierte Antwort here sehen):
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <page-encoding>UTF-8</page-encoding> </jsp-property-group> </jsp-config>
Ich gehe davon aus diesen Zeilen einfügen nur zwischen <web-app>
und </web-app>
. Aber lassen Sie mich wissen, ob sie stattdessen in einen anderen Deskriptor (wie <glassfish-web-app>
und </glassfish-web-app>
) gehen sollten?
Ich habe das auch in dem Abschnitt <head>
JSP folgende:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
Nützliche Referenzen:
How to get rid of WARNING: PWC4011: Unable to set request character encoding to UTF-8
https://stackoverflow.com/tags/servlet-filters/info
https://wikis.oracle.com/display/GlassFish/FaqHttpRequestParameterEncoding
Danke @unwichtich, also ist es richtig, dass BEIDE Dateien im WEB-INF Ordner existieren müssen (also 'web.xml' UND' glassfish-web.xml')? Muss ich GlassFish auch so konfigurieren, dass es nach der Erstellung dieser "glassfish-web.xml" -Datei sucht, oder wird GlassFish es automatisch finden? – user46688
Die Datei glassfish-web.xml ist nicht unbedingt erforderlich, wenn Sie sie nicht für einige Glassfish-spezifische Konfigurationseigenschaften wie die Standardcodierung verwenden müssen. Die Datei wird automatisch gescannt, wenn sie in den Ordner WEB-INF gestellt wird, stellen Sie sicher, dass Sie Ihr Projekt vor der erneuten Bereitstellung bereinigen und erstellen :) – unwichtich
Oh Entschuldigung, ich habe vergessen, dass dies auch erforderlich ist. Ich habe meine Antwort aktualisiert. – unwichtich