Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Параметры запроса и их значения в сервлете, Что получаем, если параметр отсутствует 
:(
    Опции темы
tolet
Дата 24.10.2008, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 24.9.2006
Где: Москва

Репутация: нет
Всего: нет



Добрый день всем!

Есть вопрос относительно передаваемых параметров в сервлет через http запрос: предположим что есть сервлет, который принимает и обрабатывает три параметра из запроса. Но в этот сервлет также может приходить запросы лишь с двумя параметрами. Я пытаюсь обойти отсутствие одного из параметров, но сервлет выдает ошибку:

Ошибку выдает строчка: if (menulevel3.equals(null)) {...} и дальше обработка если условие верно.

Ну и собственно вопрос - в чем ошибка? У меня есть предположение, что при обработке запроса и присвоению переменной menulevel3 параметра из запроса происходит что-то, что я не учел.

Заранее благодарен за ответ.
PM MAIL WWW ICQ   Вверх
admin82
Дата 24.10.2008, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 22.8.2006

Репутация: 1
Всего: 1



Ну если menulevel3 у тебя как раз тот параметр, которого нет, то не на чем и equals вызывать, NPE получаешь.
Надо
 
Код

if (menulevel3 == null){
//
}

PM MAIL   Вверх
tolet
Дата 24.10.2008, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 24.9.2006
Где: Москва

Репутация: нет
Всего: нет



admin82, пробовал я такой вариант - не проходит
PM MAIL WWW ICQ   Вверх
necromancer
Дата 24.10.2008, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

Репутация: 6
Всего: 7



иногда посмотришь посмотришь на все это и улыбнешься =)
что бы господа эхперты могли дать вменяемый и полный ответ необходимо:
1 предоставить кусок (или весь) код
2 предоставить стректрейс

как получить стектрейс в простейшем случае:
Код

try {
   ...  ваш код
} catch(Exception e) {
    e.printStackTrace();
}


в результате при возниконовении ошибки на консоль будет выведен стектрейс.

Это сообщение отредактировал(а) necromancer - 24.10.2008, 11:06


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
admin82
Дата 24.10.2008, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 22.8.2006

Репутация: 1
Всего: 1



Ну если включить телепатию, то можно еще предложить
Код

if (menulevel3 == null || ((String)menulevel3).trim()).equals("")){

}

PM MAIL   Вверх
skhilkov
Дата 24.10.2008, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 371
Регистрация: 11.4.2006
Где: TOMSK

Репутация: 2
Всего: 7



tolet, 
Цитата

Ну и собственно вопрос - в чем ошибка? 


Вот это бы я тоже хотел знать.... предполагаю что admin82 был прав, тогда
Цитата

admin82, пробовал я такой вариант - не проходит

что не проходит и как?


--------------------
Кто понял жизнь, тот не спешит. 
PM MAIL   Вверх
tolet
Дата 24.10.2008, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 24.9.2006
Где: Москва

Репутация: нет
Всего: нет



Я обошел данную ошибку, но... достаточно кривым способом - я просто задал в URL этот параметр, но присвоил ему значение 0, если другого web-приложение не дает ему. Но вопрос у меня все равно остается - ошибка в сравнении чем вызвана? Я предполагаю, что когда этот параметр приходит из URL (вернее не приходит вообще - т.е. попросту отсутствует), то ему присваивается значение отличное от null, но тогда вопрос - какое? Собственно говоря, если бы было присвоено значение null, то даже мое условие было бы верно. Или я не прав?
PM MAIL WWW ICQ   Вверх
admin82
Дата 24.10.2008, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 22.8.2006

Репутация: 1
Всего: 1



Жесть. 
Кода мы так и не увидели, отладчик у человека тоже отсутствует. 
Ну что же, пусть будет так

PM MAIL   Вверх
skhilkov
Дата 25.10.2008, 06:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 371
Регистрация: 11.4.2006
Где: TOMSK

Репутация: 2
Всего: 7



tolet, 
1) Код в студию!
2) 
Цитата

если бы было присвоено значение null, то даже мое условие было бы верно. Или я не прав? 

Не прав, так как пытаешься вызвать метод у объекта которого нет.


--------------------
Кто понял жизнь, тот не спешит. 
PM MAIL   Вверх
tolet
Дата 25.10.2008, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 24.9.2006
Где: Москва

Репутация: нет
Всего: нет



Вот выжимки из кода:

Код

    private String menulevel1;
    private String menulevel2;
    private String menulevel3;
    private String article;

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException 
    {
        menulevel1 = request.getParameter("ml1");
        menulevel2 = request.getParameter("ml2");
        menulevel3 = request.getParameter("ml3");
        article = request.getParameter("artcl");
        //Делаем другие действия
    }

    private void setEnMainContent()
    {
        
       if (menulevel3.equals(null))
       {
           //Делаем другие действия
       }
    }

PM MAIL WWW ICQ   Вверх
skhilkov
Дата 25.10.2008, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 371
Регистрация: 11.4.2006
Где: TOMSK

Репутация: 2
Всего: 7



tolet, 
Код это уже хорошо. Но судя по коду тебе должно 100% подойти решение admin82. 
Напиши почему оно тебе не подходит? Какая ошибка вываливается? Кстати не видно где у тебя вызывается метод в котором происходит проверка.


--------------------
Кто понял жизнь, тот не спешит. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0617 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.