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 :)

Читайте также: