Geeignete Situation -> verstümmelte Code -Situation beim Übergang von JSP zu Aktion und hier als Beispiel GBK einnehmen
1. Erstellen Sie einen Filter zur Konvertierungskodierung
Beispiel für Dateiort: src.util.setcharacterencodingFilter.java
Die Codekopie lautet wie folgt:
Paket Util;
importieren java.io.ioException;
import Javax.servlet.filter;
importieren javax.servlet.filterchain;
importieren javax.servlet.filterconfig;
importieren javax.servlet.servletException;
importieren javax.servlet.servletrequest;
importieren javax.servlet.servletresponse;
importieren javax.servlet.unaceableablexception;
/**
* Beispielfilter, der die Zeichenkodierung festlegt, die zum Parsen der verwendet werden soll
* Eingehende Anfrage
*/
öffentliche Klasse SetCharactercodingFilter implementiert Filter {
/**
* Nehmen Sie diesen Filter außer Betrieb.
*/
public void destroy () {
}
/**
* Wählen Sie und festlegen (falls angegeben), um die Zeichencodierung zu verwenden
* Interpretieren Sie Anforderungsparameter für diese Anfrage.
*/
Public Void Dofilter (ServletRequest Anfrage, ServletResponse -Antwort,
Filterchain -Kette) löst IoException, ServletException {aus
request.setcharactercoding ("gbk");
// Kontrolle an den nächsten Filter übergeben
chain.dofilter (Anfrage, Antwort);
}
public void init (filterconfig filterconfig) löst servletException {aus
}
}
2. Modify web.xml und fügen Sie 2 Filter vor Struts 'FilterDispatcher Mapping hinzu
Die Codekopie lautet wie folgt:
<? xml Version = "1.0" coding = "utf-8"?>
<web-App-Version = "2.5"
xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance"
XSI: Schemalocation = "http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd ">
<Hörer>
<Hörer-Klasse> org.springframework.web.context.contextloaderListener </Listener-Klasse>
</Hörer>
<Filter>
<Filter-name> Zeichenkodierung </filter-name>
<Filter-Klasse> util.setcharacterencodingFilter </Filter-Klasse>
</filter>
<Filtermapping>
<Filter-name> Zeichenkodierung </filter-name>
<URL-Muster>/*</url-pattern>
</filtermapping>
<Filter>
<Filter-name> Struts-Cleanup </filter-name>
<Filter-Klasse> org.apache.struts2.dispatcher.ActionContextCleanUp </Filter-Class>
</filter>
<Filtermapping>
<Filter-name> Struts-Cleanup </filter-name>
<URL-Muster>/*</url-pattern>
</filtermapping>
<Filter>
<Filtername> Struts2 </filter-name>
<Filter-Klasse> org.apache.struts2.dispatcher.filterDispatcher </Filter-Class>
</filter>
<Filtermapping>
<Filtername> Struts2 </filter-name>
<URL-Muster>/*</url-pattern>
</filtermapping>
</web-App>
3. Ihr JSP -Header sollte haben
<%@ page Language = "Java" pageCoding = "gbk"%>
4. Ändern Sie die Standardcodierungseinstellungen in Struts.xml
Die Codekopie lautet wie folgt:
<Struts>
<konstant name = "stolzs.i18n.encoding" value = "gbk"> </konstant>
...
...
...
</Struts>
Grundsätzlich kann dies das Problem der meisten eingehenden Charaktere lösen
PS: Wenn die Datenbank wie MySQL verstümmelt extrahiert, bestätigen Sie, dass die Zeichen in Ihrer Datenbank GBK sind und die Verbindungszeichenfolge die Zeichencodierung angibt.
<Eigenschaft name = "url" value = "jdbc: mysql: // localhost/database? useUnicode = true & charakterencodierung = gbk"> </property>