JSP / GlassFish: как правильно настроить кодировку UTF-8
я ищу помощь, чтобы получить все мои слои в стеке в кодировке UTF-8.
я нашел хорошую статью:
http://www.javapractices.com/topic/TopicAction.do?Id=206
описывая 3 места, которые мне нужно беспокоиться о кодировании. Поскольку моя (1) база данных Oracle в настоящее время установлена в UTF-8, это оставляет (2) браузер и (3) сервер для беспокойства.
я также нашел это подробно статья
http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html#JSPServletRequest
который я пытаюсь следовать ниже, но с некоторыми вопросами Новичка о реализации.
чтобы обратиться к браузеру, я обязательно включил следующее в верхней части каждой страницы JSP:
<%@page pageEncoding="UTF-8"%>
(см. здесь).
адрес сервера, я следующая строка на страницах Java servlet и JSP перед выдачей request.getParameter()
или request.getAttribute()
о себе:
request.setCharacterEncoding("UTF-8");
поскольку я использую GlassFish 3.1.2, я понимаю, что по умолчанию он не использует UTF-8, поэтому мне нужно установить его вручную.
я видел много сайтов, говорящих о файле с именем glassfish-web.xml
. Это часть обычной установки glassfish? Я не знаю, где его найти. Я использовал в своем WEB-INF
папка для моего веб-приложения. Мог кто-нибудь помогите мне выяснить, нужно ли мне изменить это web.xml
файл, или мне нужно найти или создать новый файл с именем glassfish-web.xml
, настроить кодировку для glassfish?
мой начинается с:
<?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>
...
для запроса JSP / servlet я включаю следующую строку в
<parameter-encoding default-charset="UTF-8"/>
это нормально, чтобы положить в ? Или, это должно идти в некоторых ?
для ответа JSP / servlet я поставил следующее В моем web.xml
файл (см. принятый ответ здесь):
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <page-encoding>UTF-8</page-encoding> </jsp-property-group> </jsp-config>
я предполагаю, что эти строки просто вставить между <web-app>
и </web-app>
. Но, дайте мне знать, если они должны вместо этого войти в какой-то другой дескриптор (например,<glassfish-web-app>
и </glassfish-web-app>
)?
я также поставил следующее В JSP :
<meta http-equiv="content-type" content="text/html; charset=utf-8">
Полезные ссылки:
Как избавиться от предупреждения: PWC4011: невозможно установить кодировку символов запроса в UTF-8
https://stackoverflow.com/tags/servlet-filters/info
https://wikis.oracle.com/display/GlassFish/FaqHttpRequestParameterEncoding
1 ответов
на glassfish-web.xml
- файл вы можете создать в своем . Для Glassfish 3.x он должен выглядеть примерно так:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app>
<jsp-config>
</jsp-config>
<parameter-encoding default-charset="UTF-8" />
</glassfish-web-app>
и вы правы, параметр-кодировка должна быть в этом файле, а не в web.xml
:)
Читайте также: