Portál AbcLinuxu, 30. dubna 2025 10:28
V Javě jsem cca 97%-ní začátečník.V češtině asi taky, ne?
request.setCharacterEncoding(String)
už nemá žádný vliv. Což vám klidně může udělat nějaký filtr, který si chce třeba jenom přečíst, zda v požadavku náhodou není parametr debug
, aby vypsal nějaké ladicí informace. Takže bývá dobré jako první filtr použít filtr, který zavolá request.setCharacterEncoding(String)
(nejspíš s nějakou konstantou, protože si nedovedu představit, k čemu by bylo dobré měnit kódování stránek na jednom webu).
Taky je potřeba dávat pozor na to, že jakmile kdokoli (filter nebo servlet) prvně přečte jakýkoli parametr z požadavku (nebo vlastní tělo požadavku), „zakonzervuje“ se nastavené kódování požadavku a následné volání request.setCharacterEncoding(String)
už nemá žádný vliv.
Nejen u requestu, u response je to podobne. Nedavno jsem v jednom svem servletu zarizoval, aby se na TransformerException (jejimz zdrojem byla FileNotFoundException) poslala chyba SC_NOT_FOUND a Tomcat vlitnul na mnou definovanou chybovou stranku. A dokud jsem nezaridil, aby se Writer z response ziskaval az po transformaci (a tedy po potencialni vyjimce saxonu), vzdycky byla chybova stranka poslana s "rozsypanym cajem"...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.