Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.98/46: Рейтинг темы: голосов - 46, средняя оценка - 4.98
19 / 19 / 6
Регистрация: 09.12.2010
Сообщений: 140

Кириллица в Веб-приложении

23.02.2014, 11:57. Показов 9207. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создал веб-приложение (IDE NetBeans 7.4, версия Java EE 6 web, сервер Glassfish 4.0). Передаю параметр из одной страницы на другую. Для корректной работы с кириллицей добавил фильтр. Все работает идеально.
Затем, для работы с базой данных, добавил классы сущностей и сеансные компоненты. И теперь, при передаче параметра, на странице отображаются иероглифы. Хотя в адресной строке параметр отображается корректно. (Параметр не из БД, а вводимое в текстовое поле значение.)
Для эксперимента, удалил сеансные компоненты - все опять работает хорошо. Т. е. при добавлении сеансных компонентов запрос обходит фильтр стороной. Подскажите, как исправить. Заранее благодарен!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.02.2014, 11:57
Ответы с готовыми решениями:

Сохранение данных в веб-приложении
В общем, у меня есть проект web-приложения. Я выбрал фреймворк JSF. Описал две html страницы: index и response. На index есть текстовое...

Чтение файла в веб-приложении
Всем привет! Что-то не могу понять, в чем дело. Есть веб-приложение, хочу вывести в .jsp страницу данные из .txt файла. Как я понимаю,...

Получить username в веб приложении
Здравствуйте. Подскажите если кто знает, как можно получить имя пользователя(под которым залогинился в винду клиент, который входит на...

47
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
23.02.2014, 12:30
маловато кода для анализа
0
19 / 19 / 6
Регистрация: 09.12.2010
Сообщений: 140
23.02.2014, 14:01  [ТС]
index.jsp
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <form action="second">
            <input name="nplat" id="nplat" type="text" value="" />
        </form>
    </body>
</html>

second.jsp
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        ${param.nplat}
    </body>
</html>

ControllerServlet.java - контроллер
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
 *
 * @author PuhovAG
 */
@WebServlet(name = "ControllerServlet", loadOnStartup = 1,
        urlPatterns = {"/second"})
public class ControllerServlet extends HttpServlet {
 
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        String userPath = request.getServletPath();
 
        if (userPath.equals("/second")) {
            // TODO: Implement update cart action
        } 
 
        String url = "/WEB-INF/view" + userPath + ".jsp";
 
        try {
            request.getRequestDispatcher(url).forward(request, response);
        } catch (IOException | ServletException ex) {
        }
    }
 
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        String userPath = request.getServletPath();
 
//        if (userPath.equals("/second")) {
//            // TODO: Implement update cart action
//        }
 
        String url = "/WEB-INF/view" + userPath + ".jsp";
 
        try {
            request.getRequestDispatcher(url).forward(request, response);
        } catch (IOException | ServletException ex) {
        }
    }
}

filter_cyr.java - фильтр
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package filter;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
 
@WebFilter(filterName = "filter_cyr", urlPatterns = {"/*"})
public class filter_cyr implements Filter {
 
    private static final boolean debug = true;
 
    private FilterConfig filterConfig = null;
 
    public filter_cyr() {
    }
 
    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain)
            throws IOException, ServletException {
 
        request.setCharacterEncoding("UTF-8");
        chain.doFilter(request, response);
    }
...
...
...
}

пробовал в начало страниц вставлять <% request.setCharacterEncoding("UTF-8"); %> - не помогло.

P.S. добавляю сеансовые компоненты для сущностных классов в netbeans: Новый файл -> Персистентность -> Сеансовые компоненты для сущностных классов, перезагружаю glassfish - фильтр не работает. Удаляю пакет с сеансовыми компонентами, перезагружаю glassfish - фильтр работает.
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
23.02.2014, 14:14
а из базы у вас кириллица нормально идёт? мне кажется что у вас на этапе вставки в базу всё портится, укажите явно для соединения с базой UTF8
0
19 / 19 / 6
Регистрация: 09.12.2010
Сообщений: 140
23.02.2014, 14:18  [ТС]
на данном этапе я БД вообще не использую, параметр просто передается со страницы на страницу.
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
23.02.2014, 14:19
Цитата Сообщение от sashocheck Посмотреть сообщение
String url = "/WEB-INF/view" + userPath + ".jsp";
странный способ форварда

обычно это от корня должно происходить
Java
1
context.getRequestDispatcher("/view" + userPath + ".jsp");
0
19 / 19 / 6
Регистрация: 09.12.2010
Сообщений: 140
23.02.2014, 14:22  [ТС]
пример взят с сайта netbeans.org, там есть урок создания бизнес приложения, я и следую данному примеру.
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
23.02.2014, 14:49
отмена - нашёл
0
19 / 19 / 6
Регистрация: 09.12.2010
Сообщений: 140
23.02.2014, 14:52  [ТС]
Implementing the Controller Servlet
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
23.02.2014, 14:53
похоже у вас проблема в том что вы пишете что у вас контент тайп utf8 но сам сервлет и jsp в нетбинсе пишете в кодировке cp1251
0
19 / 19 / 6
Регистрация: 09.12.2010
Сообщений: 140
23.02.2014, 15:38  [ТС]
я не могу понять в чем связь приложения с сеансовыми компонентами, если я БД пока не использую?
0
19 / 19 / 6
Регистрация: 09.12.2010
Сообщений: 140
23.02.2014, 19:43  [ТС]
mutagen, сделал скриншоты HTTP монитора Netbeans

запрос с установленными сеансовыми компонентами:


без них:

может по ним можно что-то определить?
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
23.02.2014, 20:51
проверь кодировку самих JSP страничек - должна быть в UTF8 не в CP1251
0
19 / 19 / 6
Регистрация: 09.12.2010
Сообщений: 140
23.02.2014, 22:19  [ТС]
с кодировками страничек все в порядке:
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
23.02.2014, 22:46
покажи что генерит jsp с крокозябрами в виде исходников из браузера Ctrl+U в хроме
0
19 / 19 / 6
Регистрация: 09.12.2010
Сообщений: 140
23.02.2014, 22:49  [ТС]
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
Александр
</body>
</html>
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
23.02.2014, 22:55
а у браузера стоит автоопределение кодировки?
так как сам html в порядке
0
19 / 19 / 6
Регистрация: 09.12.2010
Сообщений: 140
23.02.2014, 23:02  [ТС]
использую chrome, кодировка utf-8, галочка "определять автоматически" не стоит.
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
23.02.2014, 23:04
а поставить галочку?
просто текст выгляди как cp1251 в UTF8
0
19 / 19 / 6
Регистрация: 09.12.2010
Сообщений: 140
23.02.2014, 23:09  [ТС]
не, ничего, также применил все доступные в chrome кириллические кодировки - результат тот же - иероглифы, но другие
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.02.2014, 23:09
Помогаю со студенческими работами здесь

Реализация авторизации в веб-приложении
Учебный проект, необходимо сделать форму со вводом логина и пароля и последующим попаданием на страницу юзера или админа или на ошибку. Как...

Как запустить JDBS в веб приложении
Ребят помогите пожалуйста, я начинающий программист. 3 час бьюсь с этой ошибкой. java.lang.ClassNotFoundException: org.sqlite.JDBC...

Как сделать поиск в веб-приложении?
Всем привет! Практикуюсь в разработке веб-приложения, где нужно осуществить сортировку по номеру и названию, а так же поиск по номеру. Если...

Кириллица в консольном приложении C++
Приветствую вас, дорогие друзья. Подскажите пожалуйста, какой код нужно прописать в консольной программе, чтобы кодировку консоли с...

В приложении не отображается кириллица
Мне нужно выводить русский текст в текстбокс. Английский отображаеться нормально, но вместо русского ромбы с знаками вопросов. В манифесте...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru