Spring MVC: CharacterEncodingFilter; warum nur setzen Sie response-Codierung, die von der Kraft?
Wurde ich mit einem Blick auf die CharacterEncodingFilter zur Verfügung gestellt von Spring MVC. Ich Frage mich, warum war es nur möglich, die Antwort Kodieren, wenn die Anfrage die Codierung war gezwungen, die gegebenen Codierung? Warum nicht in der Lage sein, eine Standard-Antwort Kodieren, wenn nichts angegeben ist, in die accept-header-Feldern? Oder, wenn keine Codierung vorhanden war in der Anfrage?
Code:
@Override
protected void doFilterInternal(
HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
if (this.encoding != null && (this.forceEncoding
|| request.getCharacterEncoding() == null)) {
request.setCharacterEncoding(this.encoding);
if (this.forceEncoding) {
response.setCharacterEncoding(this.encoding);
}
}
filterChain.doFilter(request, response);
}
Fand ich diese als Referenz
https://jira.springsource.org/browse/SPR-3328?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel
die besagt, dass die response-Codierung kann nur eingestellt werden, wenn die Anfrage die Codierung wird zwangsweise eingestellt. Warum?
Vielen Dank im Voraus,
Martin
InformationsquelleAutor Martin Becker | 2012-07-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich kann Ihnen sagen, was Jürgen Höller sagt, auf link https://jira.springsource.org/browse/SPR-3328?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel,
Fügen Sie folgenden filter in web.xml (Servlet 2.4+) set encoding :
EDIT :
CharacterEncodingFilter : Die aktuellen Browser in der Regel nicht setzen ein Zeichen-Codierung, auch wenn in der angegebenen HTML-Seite oder form. Die oben genannten filter kann entweder gelten die Codierung, wenn der Antrag nicht bereits geben Sie eine Codierung, oder erzwingen Sie diese filter-s-Codierung in jedem Fall("forceEncoding"="true"). Wenn wir streng wollen zum Kodieren von Zeichen, setzen wir es gewaltsam.
Ich denke
Boris's
link im Kommentar wird diese Fragen beantworten.aktualisierte Antwort, ich hoffe, es klärt Sie.
in tomcat 6-es wird nicht funktionieren..was tun?
InformationsquelleAutor Nandkumar Tekale
Wenn sonst nichts funktioniert, können Sie einen filter erstellen ( Bohne ) in security-Context.xml und setzen forceEnconding=true;
Vergessen Sie nicht, um das neue custom-Filter:
InformationsquelleAutor dannybastos