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

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

23.02.2014, 11:57. Показов 9615. Ответов 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
24.02.2014, 22:05
Студворк — интернет-сервис помощи студентам
да в нетбинсе
0
19 / 19 / 6
Регистрация: 09.12.2010
Сообщений: 140
24.02.2014, 22:16  [ТС]
так, а вы, при проверке приложения подключали БД, добавляли классы сущностей и сеансные компоненты?
подскажите, пожалуйста, может есть другие методы работы с БД (в каком направлении рыть?), кроме jstl тегов и того способа который представлен в уроках netbeans.org, а то, если честно, эта кириллица меня уже достала, третий день бьюсь, а толку никакого?
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
24.02.2014, 22:32
всё у вас сделано вроде бы правильно, но вот отчего кириллица не пашет, я не знаю, у меня не воспроизводится, добавьте логирование всего что летает через бины, смотрите логи, ищите, больше пока посоветовать нечего
1
19 / 19 / 6
Регистрация: 09.12.2010
Сообщений: 140
25.02.2014, 18:43  [ТС]
хорошо, mutagen, спасибо за помощь! , буду исходить из того что есть.

Добавлено через 13 часов 25 минут
короче говоря, переустановил glassfish с 4 на 3.1.2.2 - и все работает!!! mutagen, еще раз спасибо за метод service(), с ним и фильтр не нужен!

Добавлено через 5 часов 41 минуту
определив то, что проблема была в glassfish, стал копать в этом направлении и нашел решение и для glassfish версии 4:
1) создал файл glassfish-web.xml (Создать файл -> Glassfish -> Дескриптор Glassfish)
2) в него добавил:
XML
1
<parameter-encoding default-charset="UTF-8"/>
и glassfish 4 подружился с кириллицей!
0
0 / 0 / 1
Регистрация: 23.09.2013
Сообщений: 38
01.05.2016, 18:30
в мене така ж проблема, кирилиця виводиться з ієрогліфами.
HTML5
1
out.print(aTitle+aText+aImage);
ця строка в коді: aTitle+aText - виводиться з ієрогліфами. aImage - вже нормально виводиться


HTML5
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.text.DateFormat"%>
<%@page import="java.util.Date"%>
<%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@page import="org.apache.commons.fileupload.FileItem"%>
<%@page import="org.apache.commons.fileupload.FileItemFactory"%>
<%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@page import="java.io.File"%>
<%@page import="java.util.Iterator"%>
<%@page import="java.util.List"%>
<%@page import="bussiness.User"%>
<%@page import="java.util.ArrayList"%>
<%@page import="bussiness.Article"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
 
<%
    if (session.getAttribute("uid") == null) {
        response.sendRedirect("Login.jsp");
    }
    if (ServletFileUpload.isMultipartContent(request)) {
        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        List items = upload.parseRequest(request);
        Iterator itr = items.iterator();
        String aTitle = "";
        String aText = "";
        String aImage = "";
        boolean aActive = false;
        while (itr.hasNext()) {
            FileItem item = (FileItem) itr.next();
            if (item.isFormField()) {
                if (item.getFieldName().equals("art_title")) {
                    aTitle = item.getString();
                }
                if (item.getFieldName().equals("art_text")) {
                    aText = item.getString();
                }
                if (item.getFieldName().equals("art_active")) {
                    aActive = true;
                }
            }
            if (!item.isFormField()) {
                aImage = item.getName();
                item.write(new File(config.getServletContext().getRealPath("/") + item.getName()));
            }
        }
        
        Article a = new Article(aTitle, aImage, aText, new Date(), Integer.parseInt(session.getAttribute("uid").toString()), aActive);
        out.print(aTitle+aText+aImage);
        a.insert();
    }
%>
 
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <%
            ArrayList<Article> al = Article.getAll();
            for (Article a : al) {
        %>
        <div style="border: 1px solid black; padding: 5px;">
            Title: <a href="index.jsp?aid=<%=a.id%>"><%=a.title%></a><br />
            Author: <%=User.getById(a.author).nick%><br />
            <img src="<%=a.image%>" />
        </div>
        <%
            }
        %>
        <form action="Articles.jsp" method="post" enctype="multipart/form-data">
            <table border="1">
                <tr bgcolor="#d3d3d3"><td>Title</td><td>Text</td><td>Active</td></tr>
                <tr>
                    <td><input type="text" name="art_title"/></td>
                    <td><textarea type="text" name="art_text"/></textarea></td>
                    <td><input checked="checked" type="checkbox" name="art_active"/></td>
                </tr>
                <tr bgcolor="#d3d3d3"><td>Image</td><td></td><td></td></tr>
                <tr>
                    <td><input type="file" name="art_image"/></td>
                    <td></td>
                    <td></td>
                </tr>
                <tr ><td></td><td></td>
                    <td>
                        <input type="submit" name="art_confirm" value="Confirm"/>
                    </td>
                </tr>
            </table>
        </form>
    </body>
</html>
0
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
02.05.2016, 07:44
Teshlya, может поможет Кракозябры при вводе через input web приложение

Добавлено через 51 минуту
Teshlya, может поможет Кракозябры при вводе через input web приложение
1
0 / 0 / 1
Регистрация: 23.09.2013
Сообщений: 38
02.05.2016, 14:22
Цитата Сообщение от asus Посмотреть сообщение
Teshlya, может поможет кракозябры при вводе через input web приложение
Дякую!
Ця проблема виникає із використання multipart/form-data. Я вирішив її таким способом:
Java
1
new String (s.getBytes ("iso-8859-1"), "UTF-8");
Тут весь код:
HTML5
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.text.DateFormat"%>
<%@page import="java.util.Date"%>
<%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@page import="org.apache.commons.fileupload.FileItem"%>
<%@page import="org.apache.commons.fileupload.FileItemFactory"%>
<%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@page import="java.io.File"%>
<%@page import="java.util.Iterator"%>
<%@page import="java.util.List"%>
<%@page import="bussiness.User"%>
<%@page import="java.util.ArrayList"%>
<%@page import="bussiness.Article"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
 
<%
    if (session.getAttribute("uid") == null) {
        response.sendRedirect("Login.jsp");
        return;
    }
    if (ServletFileUpload.isMultipartContent(request)) {
        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        List items = upload.parseRequest(request);
        Iterator itr = items.iterator();
        String aTitle = "";
        String aText = "";
        String aImage = "";
        boolean aActive = false;
        while (itr.hasNext()) {
            FileItem item = (FileItem) itr.next();
            if (item.isFormField()) {
                if (item.getFieldName().equals("art_title")) {
                    aTitle = new String(item.getString().getBytes("iso-8859-1"), "UTF-8");
                }
                if (item.getFieldName().equals("art_text")) {
                    aText = new String(item.getString().getBytes("iso-8859-1"), "UTF-8");
                }
                if (item.getFieldName().equals("art_active")) {
                    aActive = true;
                }
            }
            if (!item.isFormField()) {
                aImage = item.getName();
                item.write(new File(config.getServletContext().getRealPath("/") + item.getName()));
            }
        }
 
        Article a = new Article(aTitle, aImage, aText, new Date(), Integer.parseInt(session.getAttribute("uid").toString()), aActive);
        String s = new String(aTitle.getBytes("iso-8859-1"), "UTF-8");
        out.print(s + aText + aImage);
        a.insert();
    }
%>
 
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <%
            ArrayList<Article> al = Article.getAll();
            for (Article a : al) {
        %>
        <div style="border: 1px solid black; padding: 5px;">
            Title: <a href="index.jsp?aid=<%=a.id%>"><%=a.title%></a><br />
            Author: <%=User.getById(a.author).nick%><br />
            <img src="<%=a.image%>" />
        </div>
        <%
            }
        %>
        <form action="Articles.jsp" method="post" enctype="multipart/form-data" acceptcharset="UTF-8">
            <table border="1">
                <tr bgcolor="#d3d3d3"><td>Title</td><td>Text</td><td>Active</td></tr>
                <tr>
                    <td><input type="text" name="art_title"/></td>
                    <td><textarea type="text" name="art_text"/></textarea></td>
                    <td><input checked="checked" type="checkbox" name="art_active"/></td>
                </tr>
                <tr bgcolor="#d3d3d3"><td>Image</td><td></td><td></td></tr>
                <tr>
                    <td><input type="file" name="art_image"/></td>
                    <td></td>
                    <td></td>
                </tr>
                <tr ><td></td><td></td>
                    <td>
                        <input type="submit" name="art_confirm" value="Confirm"/>
                    </td>
                </tr>
            </table>
        </form>
    </body>
</html>
0
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
02.05.2016, 15:46
Teshlya, попробуйте разделить этот JSP файл на две части... пусть с обработкой займется Сервлет, код станет намного читабельным
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.05.2016, 15:46

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
48
Ответ Создать тему
Новые блоги и статьи
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж» Уважаемые коллеги! Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru