Szukam pomocy, aby wszystkie moje warstwy w stosie były kodowane w UTF-8.JSP/GlassFish: jak poprawnie skonfigurować kodowanie UTF-8?
znalazłem ten piękny artykuł:
http://www.javapractices.com/topic/TopicAction.do?Id=206
opisującą 3 miejsca muszę się martwić o kodowaniu. Ponieważ moja (1) baza danych Oracle jest obecnie ustawiona na UTF-8, pozostawia ona (2) przeglądarkę i (3) serwer, aby się martwić.
Znalazłam też to szczegółowy artykuł
http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html#JSPServletRequest
które staram się śledzić poniżej, ale z pewnymi pytaniami początkujących około realizacji.
Aby rozwiązać przeglądarkę, zrobiłem pewnością zaliczyć na górze każdej strony JSP:
<%@page pageEncoding="UTF-8"%>
(Dla porównania, patrz here).
Aby rozwiązać ten serwer, zrobiłem pewien zawierać następującą linię w apletu Java i stron JSP przed wydaniem request.getParameter()
lub request.getAttribute()
oświadczenie:
request.setCharacterEncoding("UTF-8");
Ponieważ Używam GlassFish 3.1.2, ja rozumiem, że domyślnie nie używa on UTF-8, więc muszę go jakoś ustawić ręcznie.
Widziałem wiele stron internetowych mówiących o pliku o nazwie glassfish-web.xml
. Czy ta część normalnej szklarni jest zainstalowana? Nie wiem, gdzie to znaleźć. Korzystam z pliku web.xml
w moim folderze WEB-INF
dla mojej aplikacji internetowej. Czy ktoś mógłby mi pomóc dowiedzieć się, czy muszę zmodyfikować ten plik web.xml
, czy też muszę znaleźć lub utworzyć nowy plik o nazwie glassfish-web.xml
, aby skonfigurować kodowanie dla glassfish?
Mój plik web.xml
rozpoczyna się:
<?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>
...
Na żądanie/serwletu JSP, I obejmują następującą linię w pliku web.xml
<parameter-encoding default-charset="UTF-8"/>
Czy to OK, aby umieścić w pliku web.xml
? Lub czy trzeba przejść do jakiegoś pliku glassfish-web.xml
?
na odpowiedź/serwletu JSP, umieścić następujące w moim pliku web.xml
(Akceptowane odpowiedź here):
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <page-encoding>UTF-8</page-encoding> </jsp-property-group> </jsp-config>
Jestem zakładając te linie wystarczy włożyć między <web-app>
i </web-app>
. Ale daj mi znać, czy powinni zamiast tego wejść do innego deskryptora (takiego jak <glassfish-web-app>
i </glassfish-web-app>
)?
ja również umieścić następujące informacje w sekcji JSP <head>
:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
Przydatne odnośniki:
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
Dzięki @netwichtich, więc czy to prawda, że oba pliki muszą istnieć w folderze WEB-INF (czyli 'web.xml' i' glassfish-web.xml')? Ponadto, czy muszę skonfigurować GlassFish, aby wyszukać ten plik 'glassfish-web.xml' po jego utworzeniu, czy też GlassFish znajdzie go automatycznie? – user46688
Plik glassfish-web.xml nie jest tak naprawdę wymagany, jeśli nie trzeba go używać w przypadku niektórych właściwości konfiguracyjnych Glassfish, takich jak domyślne kodowanie. Plik zostanie zeskanowany automatycznie, jeśli zostanie umieszczony w folderze WEB-INF, upewnij się, że Clean & Build Twój projekt przed ponownym uruchomieniem :) – unwichtich
O, przepraszam, zapomniałem, że jest to również wymagane. Zaktualizowałem swoją odpowiedź. – unwichtich