Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 02.03.2014
Сообщений: 133

В сервлете не находится параметр

21.03.2015, 20:06. Показов 756. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот такое простое написал:
Кликните здесь для просмотра всего текста

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
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
package mk.lab1;
 
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;
// библиотечный класс для работы с потоками вывода
import java.io.PrintWriter;
import java.util.Locale;
import java.util.ResourceBundle;
/**
* Servlet implementation class Obezians
*/
@WebServlet("/Obezians")
public class My_Serv extends HttpServlet {
    private static final long serialVersionUID = 1L;
    /**
    * @see HttpServlet#HttpServlet()
    */
    String mt[][]={
                       //Гиббоны
                       {"Hylobatidae","Hylobates","Hylobates lar"},
                       {"Hylobatidae","Hylobates","Hylobates agilis"},
                       {"Hylobatidae","Hylobates","Hylobates muelleri"},
                       {"Hylobatidae","Hylobates","Hylobates moloch"},
                       {"Hylobatidae","Hylobates","Hylobates pileatus"},
                       {"Hylobatidae","Hylobates","Hylobates klossii"},
                       {"Hylobatidae","Hoolock","Hoolock hoolock"},
                       {"Hylobatidae","Hoolock","Hoolock leuconedys"},
                       {"Hylobatidae","Nomascus","Nomascus annamensis"},
                       {"Hylobatidae","Nomascus","Nomascus concolor"},
                       {"Hylobatidae","Nomascus","Nomascus nasutus"},
                       {"Hylobatidae","Nomascus","Nomascus leucogenys"},
                       {"Hylobatidae","Nomascus","Nomascus siki"},
                       {"Hylobatidae","Nomascus","Nomascus gabriellae"},
                       {"Hylobatidae","Nomascus","Nomascus hainanus"},
                       {"Hylobatidae","Symphalangus","Symphalangus syndactylus"},
                       //Гоминиды
                       {"Hominidae","Ponginae","Pongo pygmaeus"},
                       {"Hominidae","Ponginae","Pongo abelii"},
                       {"Hominidae","Gorilla","Gorilla gorilla"},
                       {"Hominidae","Gorilla","Gorilla beringei"},
                       {"Hominidae","Pan","Pan troglodytes"},
                       {"Hominidae","Pan","Pan paniscus"},
                       {"Hominidae","Homo","Homo sapiens sapiens"}};
    public My_Serv() {
        super();
        // TODO Auto-generated constructor stub
    }
    /**
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
    methods.
    *
    * @param request servlet request
    * @param response servlet response
    * @throws ServletException if a servlet-specific error occurs
    * @throws IOException if an I/O error occurs
    */
    protected void processRequest(HttpServletRequest request, HttpServletResponse
    response)
    throws ServletException, IOException {
        // Задание типа кодировки для параметров запроса
        request.setCharacterEncoding("UTF-8");
        String family = request.getParameter("family");     //семейство
        String genus = request.getParameter("genus");       //род
        String species = request.getParameter("species");   //вид
        String lang = request.getParameter("lang");         //язык таблицы
        int c=0;
        // Задание типа содержимого для ответа (в том числе кодировки)
        response.setContentType("text/html;charset=UTF-8");
        // Чтение параметров из строки
        if(lang == null) {/*
        response.sendError(HttpServletResponse.SC_NOT_ACCEPTABLE,
        "Ожидался параметр lang");
        return;*/
            lang="en";
        }
        if(!"en".equalsIgnoreCase(lang) && !"ru".equalsIgnoreCase(lang)) {
        response.sendError(HttpServletResponse.SC_NOT_ACCEPTABLE,
        "Параметр lang может принимать значения en или ru");
        return;
        }
        // Задание типа содержимого для ответа (в том числе кодировки)
        response.setContentType("text/html;charset=utf-8");
        // Файлы ресурсов book.properties, book_en.properties и book_ru.properties
        // Установка локализации в соответствии с выбором пользователя
        ResourceBundle res = ResourceBundle.getBundle("classification", "en".equalsIgnoreCase(lang) ? 
                                                                                        Locale.ENGLISH :
                                                                                        Locale.getDefault());
        // Получение потока для вывода ответа
        PrintWriter out = response.getWriter();
        try {
            // Создание HTML-страницы
            out.println("<html>");
            out.println("<head><title>");
            // Вывод строки с учетом локализации
            out.print(res.getString("title"));
            out.println("</title></head>");
            out.println("<body>");
            out.println("<h1>");
            out.print(res.getString("title"));
            out.println("</h1>");
            out.println("<table border='1'>");
            out.println("<tr><td><b>");
            out.print(res.getString("family"));
            out.println("</b></td><td><b>");
            out.print(res.getString("genus"));
            out.println("</b></td><td><b>");
            out.print(res.getString("species"));
            out.println("</b></td></tr>");
            for(int i=0;i<mt.length;i++)
            {
                if(family==null&&(
                        genus==null&&(species==null||mt[i][2]==species)||
                        mt[i][1]==genus&&(species==null||mt[i][2]==species)
                        )||
                   mt[i][0]==family&&(
                           genus==null&&(species==null||mt[i][2]==species)||
                        mt[i][1]==genus&&(species==null||mt[i][2]==species)
                        ))
                {
                    out.println("<tr><td>"+mt[i][0]+"</td><td>"+mt[i][1]+"</td><td>"+mt[i][2]+"</td></tr>");
                    c++;
                }
            }
            out.println("</table>");
            if(c==0)
            {
                out.println("<h1=2>По запросу ничего не найдено.</h1>");
            }
            out.println("</body>");
            out.println("</html>");
            } finally {
            // Закрытие потока вывода
            out.close();
        }
    }
    /**
    * Handles the HTTP
    * <code>GET</code> method.
    *
    * @param request servlet request
    * @param response servlet response
    * @throws ServletException if a servlet-specific error occurs
    * @throws IOException if an I/O error occurs
    19
    */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    /**
    * Handles the HTTP
    * <code>POST</code> method.
    *
    * @param request servlet request
    * @param response servlet response
    * @throws ServletException if a servlet-specific error occurs
    * @throws IOException if an I/O error occurs
    */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
}

Перехожу по ссылке http://localhost:8080/WebApp1/... =Hylobates lar, оно не находит строку с таки видом, а перехожу по http://localhost:8080/WebApp1/Obezians?lang=en - выводит все строки, как и надо.
Я тупанул с условием, по которому должно выводиться, или кодировки где-то не совпадают?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.03.2015, 20:06
Ответы с готовыми решениями:

Как вывести параметр объекта класса который находится в массиве?
class Program { List&lt;Person&gt; pers = new List&lt;Person&gt;(); static void Main(string args) { ...

GUI в Сервлете
Всем привет. В книге немного написано о сервлетах.... Там через PrintWriter выводят HTML код. У меня такой вопрос. Можно ли...

Навигация в сервлете
Привет,вот решил создать новую тему(один вопрос -одна тема)).Никак не пойму в консоль томката результаты выводятся,а в сервлете нет,что...

10
 Аватар для bazJaz
36 / 33 / 21
Регистрация: 11.07.2014
Сообщений: 390
21.03.2015, 20:51
Вам точно надо создавать страницу через JAVA или может просто сделаете JSP и через форму будете посылать запрос или сразу подгружать на страницу нужный сервлет
0
1 / 1 / 0
Регистрация: 02.03.2014
Сообщений: 133
21.03.2015, 21:54  [ТС]
JSP - это не просто, формы - тоже не просто. Иначе я сразу понял бы, что вы написали. И вообще эти штуки к делу не относятся, наверняка у меня какая-то простая глупая ошибка тут.

Может, плохо сформулировал вначале, дело в том, что, когда я никаких параметров кроме lang не передаю, оно работает нормально, а когда другие, оно должно при совпадении в строке массива напечатать эту строку, а оно ни 1 строки ни при каких условиях не печатает.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
22.03.2015, 17:38
а если после этих строк
Java
1
2
3
4
String family = request.getParameter("family");     //семейство
        String genus = request.getParameter("genus");       //род
        String species = request.getParameter("species");   //вид
        String lang = request.getParameter("lang");         //язык таблицы
вывести в консоль все эти переменные, посмотреть значения при первом и втором запросе
я бы начал дебажить так
0
1 / 1 / 0
Регистрация: 02.03.2014
Сообщений: 133
22.03.2015, 20:03  [ТС]
Проверил, параметры нормально все передаются. Но условие не выполняется, если хоть 1 из них есть.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
22.03.2015, 21:20
Tsegorah, дебаг включить религия непозволяет?
0
1 / 1 / 0
Регистрация: 02.03.2014
Сообщений: 133
22.03.2015, 21:29  [ТС]
Что за дебаг? Пошаговое выполнение, при котором видны значения переменных? Как его включить в eclipse java ee? Я точку останова вроде поставил, а программа там не остановилась.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
22.03.2015, 22:25
Цитата Сообщение от Tsegorah Посмотреть сообщение
Как его включить в eclipse java ee?
запускаете контейнер в режиме отладки, ставите точку и посылаете запрос.
1
1 / 1 / 0
Регистрация: 02.03.2014
Сообщений: 133
22.03.2015, 23:12  [ТС]
При дебаге я вижу family="Hylobatidae" и mt[0][0]="Hylobatidae", genus=null, species=null. Условие должно выполняться, если family==mt[0][0]. Значит, family!=mt[0][0]. Как так?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
23.03.2015, 00:39
Tsegorah, видите как вы все запутали. Вывалили кучу когда непонятного. А если бы сразу 5 мин на дебаг потратили и написали бы то что в последнем посте, вам бы сразу сказали что сравнивать строки через == нельзя. Надо использовать equals
1
1 / 1 / 0
Регистрация: 02.03.2014
Сообщений: 133
23.03.2015, 11:02  [ТС]
Cпасибо, всё работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.03.2015, 11:02
Помогаю со студенческими работами здесь

Ошибка в сервлете
создал сервлет и в етой строке javax.servlet.http.HttpServlet кода подчеркивает слово SERVLET пишет Cannot resolve symbol servlet. а...

Сессия в сервлете)
Есть servlet и два файла jsp - (например) UpdateServlet.java, index.jsp и update.jsp. index.jsp - содержит ссылку с значением 1,...

Lazy loading в сервлете
Добрый день, у меня веб-приложение на spring + hibernate, есть связки one-to-many и many-to-one, ранее столкнулся с проблемой ленивой...

Синхронизация responce в сервлете
Всем привет! Имею сервлет. Когда тестил на страницах, содержащих одно обращение к сервлету - типа get или post в форме или через...

Проблема с кодировкой в сервлете
Господа! Подскажите начинющему разработчику. Написал небольшой сервлет по редактированию значений полей в таблице Oracle. При вводе англ....


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru