Java: Русские буквы и не только…
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: диплом купить, реферат мыло
| Добавил(а) на сайт: Сила.
Предыдущая страница реферата | 6 7 8 9 10 11 12 13 14 15 16 | Следующая страница реферата
Русские буквы в Servlet-ах.
Ну, для чего эти самые Servlet-ы нужны, я думаю, Вы в курсе. Если нет - то лучше сначала прочитать документацию. Здесь же рассказывается только об особенностях работы с русскими буквами.
Так в чём же особенности? Когда Servlet посылает ответ клиенту, есть два способа послать этот ответ - через OutputStream (метод getOutputStream()) или через PrintWriter (метод getWriter()). В первом случае Вы записываете массивы байтов, поэтому применимы вышеописанные методы записи в потоки. В случае же PrintWriter, он использует установленную кодировку. В любом случае необходимо правильно указать используемую кодировку при вызове метода setContentType(), для того, чтобы было правильное преобразование символов на стороне сервера. Это указание должно быть сделано перед вызовом getWriter() или перед первой записью в OutputStream. Пример:
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException
{
// Установка кодировки ответа
// Учтите, что некоторые engine не допускают
// наличие пробела между ';' и 'charset'
response.setContentType("text/html;charset=Windows-1251");
PrintWriter out = response.getWriter();
// Отладочный вывод названия кодировки для проверки
out.println( "Encoding: " + response.getCharacterEncoding() );
...
out.close();
}
Это по поводу отдачи ответов клиенту. Со входными параметрами, к сожалению не так просто. Входные параметры кодируются броузером побайтно в соответствии с MIME-типом "application/x-www-form-urlencoded". Как рассказал Алексей Менделев русские буквы броузеры кодируют, используя текущую установленную кодировку. Ну и, разумеется, ничего о ней не сообщают. Соответственно, например, в JSDK версий от 2.0 до 2.2 это никак не проверяется, а то, что за кодировка будет использована для преобразования - зависит от используемого engine. Начиная со спецификации 2.3 появилась возможность устанавливать кодировку для javax.servlet.ServletRequest - метод setCharacterEncoding(). Эту спецификацию уже поддерживают последние версии Resin и Tomcat.
Таким образом, если Вам повезло, и у Вас стоит сервер с поддержкой Servlet 2.3, то всё довольно просто:
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException
{
// Кодировка сообщений
request.setCharacterEncoding("Cp1251");
String value = request.getParameter("value");
...
Рекомендуем скачать другие рефераты по теме: курсовые работы, реферат государственный.
Категории:
Предыдущая страница реферата | 6 7 8 9 10 11 12 13 14 15 16 | Следующая страница реферата