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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обработка GET и POST запросов 
V
    Опции темы
Samotnik
Дата 22.10.2007, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Добрый день подскажите плз.
значит задание, примерно следущее
 - Создать index.html, который будет являться точкой входа в апликацию. Данный файл должен содержать две формы. Обе имеют текстовое поле ввода Name, но первая использует GET запрос для посылки данных на сервер (сервлет), а вторая POST.
  - Серверная часть (сервлет) должна быть модифицирована так, чтобы результатом сабмита любой из форм страницы index.html явилось отображение типа использованного запроса и фразы построенной на основе данных, введенных в поле Name на форме: Hello, <Name>. Например, "Hello, Robin Good"

 smile     Подскажите плз!!!

PM MAIL   Вверх
AlexeyVorotnikov
Дата 22.10.2007, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



И что подсказать-то? Что именно не понятно?


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
Samotnik
Дата 22.10.2007, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



чем отличается обработка пост запросов  от  гет  запросов ?
PM MAIL   Вверх
AlexeyVorotnikov
Дата 22.10.2007, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Samotnik @ 22.10.2007,  16:28)
чем отличается обработка пост запросов  от  гет  запросов ?

Ничем


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
Samotnik
Дата 22.10.2007, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Цитата(AlexeyVorotnikov @  22.10.2007,  15:48 Найти цитируемый пост)
Ничем 

Не понял, это  как??    А какой смысл задания тогда ???   Зачем тогда писать гет запрос и пост запрос?
PM MAIL   Вверх
AlexeyVorotnikov
Дата 22.10.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Samotnik @  22.10.2007,  16:53 Найти цитируемый пост)
А какой смысл задания тогда ???

Ну это, наверное, надо спросить у того, кто это задание задал. smile


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
Samotnik
Дата 22.10.2007, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



AlexeyVorotnikov,  да ну..., есть разница между гет и пост запросом. 
Я просто не помню какая точно, и как эта вся красота обрабатывается. 
Если я не ошибаюсь  гет запрос обрабатывает простые запросы типа  Имени, названия и т.д.
А пост запрос  обрабатывает  файлы, там приложения всякие!!
Разве не так?

Это сообщение отредактировал(а) Samotnik - 22.10.2007, 16:03
PM MAIL   Вверх
AlexeyVorotnikov
Дата 22.10.2007, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Samotnik @ 22.10.2007,  17:02)
AlexeyVorotnikov,  да ну..., есть разница между гет и пост запросом. 
Я просто не помню какая точно, и как эта вся красота обрабатывается. 
Если я не ошибаюсь  гет запрос обрабатывает простые запросы типа  Имени, названия и т.д.
А пост запрос  обрабатывает  файлы, там приложения всякие!!
Разве не так?

Вообще говоря, POST от GET отличается только способом передачи параметров запроса.
Некоторые типы параметров, например файлы smile, действительно трудновато передать в GET запросе. smile
В данном конкретном случае (один параметр-строка) с точки зрения сервлета разницы никакой нет.
Конечно у сервлета есть два разных метода doGet и doPost, которые обрабатывают, соответственно, GET и POST запросы. Но в обоих методах обращение к параметру Name будет происходить абсолютно одинаково: request.getParameter("Name").



--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
Maksym
Дата 22.10.2007, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



Цитата(Samotnik @  22.10.2007,  15:28 Найти цитируемый пост)
чем отличается обработка пост запросов  от  гет  запросов ? 

В этом разделе обсуждалось, не раз и не два.

PM MAIL   Вверх
Samotnik
Дата 22.10.2007, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Maksym,  Прочитал обе статьи, но так и  не понял, чем отличается  Get запрос от  Post запроса
PM MAIL   Вверх
AlexeyVorotnikov
Дата 22.10.2007, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Samotnik @ 22.10.2007,  17:40)
Maksym,  Прочитал обе статьи, но так и  не понял, чем отличается  Get запрос от  Post запроса

Чтобы это понять, надо прочитать описание HTTP.


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
Samotnik
Дата 22.10.2007, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



AlexeyVorotnikov,  Т.е. получается, что нету конкретного определения, так?
Т.е.  на вопрос, типа "Принципиальные отличия GET и POST запросов как HTTP запросов"   ответить не реально?
PM MAIL   Вверх
AlexeyVorotnikov
Дата 22.10.2007, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Samotnik @ 22.10.2007,  17:47)
AlexeyVorotnikov,  Т.е. получается, что нету конкретного определения, так?
Т.е.  на вопрос, типа "Принципиальные отличия GET и POST запросов как HTTP запросов"   ответить не реально?

Почему нереально?
Конкретные определения содержатся как раз в спецификации HTTP.


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
Samotnik
Дата 22.10.2007, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Ну пажалста, обьясните, или  хотя бы ссылочку дайте где почитать  !!  
PM MAIL   Вверх
Maksym
Дата 22.10.2007, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



Samotnik
Вот это прочитал?
PM MAIL   Вверх
Samotnik
Дата 22.10.2007, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Да!   Хотелось бы по больше, по углубленее
PM MAIL   Вверх
_Michael
Дата 22.10.2007, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



http://www.javaportal.ru/java/articles/jav...cle03.html#http
Вот отличная ccылка про HTTP протокол. думаю после нее все должно стать ясно smile


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
boevik
Дата 23.10.2007, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

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



Очень напоминает первое задание какого нибудь курса по J2EE.

Отличие в сервлете в том, что есть две функции doGet and doPost, сотвественно каждая обрабатывает свого типа запрос.

И отличие в html файле в oдном месте, method=post или method=get


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
COVD
Дата 25.3.2008, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

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



Хотел новую тему создать, да поиск подкинул этот топик. Сюда и пишу.

Если создавать новый сервлет в IDE, то, например, Netbeans создает заготовку, где и GET и POST обрабатываются одним методом, т.е. разницы сервлету практически никакой:

Код

public class NewServlet extends HttpServlet {
   
    /** 
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
    * @param request servlet request
    * @param response servlet response
    */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet NewServlet</title>");  
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet NewServlet at " + request.getContextPath () + "</h1>");
            out.println("</body>");
            out.println("</html>");
            */
        } finally { 
            out.close();
        }
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
    * Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    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
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
    * Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}


Методы doGet и doPost формально есть, но они переадресуют запрос в processRequest(..). Его и надо модифицировать. В заготовке есть лишь закомментаренный вывод html страницы для примера. 

Однако сервлет также должен получать из запроса и параметры ( иначе смысла в нем нет ). 

Параметры в GET запросе включены в строку url (..?name=a&city=b&..) . Их извлекают как 
Код

      String name = request.getParameter("name"); 


В POST клиентское приложение пишет данные в outputstream, а в сервлете их можно прочитать из inputstream. Текст, например, читают так:

Код

      BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream()));                       
      String input = in.readLine();


Ничто, казалось бы, не препятствует посылке POST запроса, в котором строка url содержит также и параметры, как в GET. Что произойдет, если в сервлете (Томкат6) мы попытаемся прочитать все из запроса - и GET и POST. Если сначала прочитать GET параметры: 

Код

      String name = request.getParameter("name"); 
      BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream()));                       
      String input = in.readLine();


, то POST параметры станут недоступны, и метод readLine вернет null, т.е. конец данных.

Но стоит поменять местами две строки, то прочитываются и GET и POST данные:

Код

      BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream()));                       
      String name = request.getParameter("name");       
      String input = in.readLine();


Понятно, что пересылать данные в одном запросе обоими способами - плохая практика.


  



    

Это сообщение отредактировал(а) COVD - 25.3.2008, 19:12
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0958 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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