| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > обработка GET и POST запросов |
| Автор: Samotnik 22.10.2007, 15:10 |
| Добрый день подскажите плз. значит задание, примерно следущее - Создать index.html, который будет являться точкой входа в апликацию. Данный файл должен содержать две формы. Обе имеют текстовое поле ввода Name, но первая использует GET запрос для посылки данных на сервер (сервлет), а вторая POST. - Серверная часть (сервлет) должна быть модифицирована так, чтобы результатом сабмита любой из форм страницы index.html явилось отображение типа использованного запроса и фразы построенной на основе данных, введенных в поле Name на форме: Hello, <Name>. Например, "Hello, Robin Good" |
| Автор: AlexeyVorotnikov 22.10.2007, 15:18 |
| И что подсказать-то? Что именно не понятно? |
| Автор: Samotnik 22.10.2007, 15:28 |
| чем отличается обработка пост запросов от гет запросов ? |
| Автор: AlexeyVorotnikov 22.10.2007, 15:48 | ||
Ничем |
| Автор: Samotnik 22.10.2007, 15:53 |
Не понял, это как?? А какой смысл задания тогда ??? Зачем тогда писать гет запрос и пост запрос? |
| Автор: AlexeyVorotnikov 22.10.2007, 15:54 |
Ну это, наверное, надо спросить у того, кто это задание задал. |
| Автор: Samotnik 22.10.2007, 16:02 |
| AlexeyVorotnikov, да ну..., есть разница между гет и пост запросом. Я просто не помню какая точно, и как эта вся красота обрабатывается. Если я не ошибаюсь гет запрос обрабатывает простые запросы типа Имени, названия и т.д. А пост запрос обрабатывает файлы, там приложения всякие!! Разве не так? |
| Автор: AlexeyVorotnikov 22.10.2007, 16:21 | ||
Вообще говоря, POST от GET отличается только способом передачи параметров запроса. Некоторые типы параметров, например файлы В данном конкретном случае (один параметр-строка) с точки зрения сервлета разницы никакой нет. Конечно у сервлета есть два разных метода doGet и doPost, которые обрабатывают, соответственно, GET и POST запросы. Но в обоих методах обращение к параметру Name будет происходить абсолютно одинаково: request.getParameter("Name"). |
| Автор: Maksym 22.10.2007, 16:22 |
В этом разделе обсуждалось, не http://forum.vingrad.ru/index.php?showtopic=130597&view=findpost&p=986008 и не http://forum.vingrad.ru/index.php?showtopic=147186&view=findpost&p=1106010. |
| Автор: Samotnik 22.10.2007, 16:40 |
| Maksym, Прочитал обе статьи, но так и не понял, чем отличается Get запрос от Post запроса |
| Автор: AlexeyVorotnikov 22.10.2007, 16:42 | ||
Чтобы это понять, надо прочитать описание HTTP. |
| Автор: Samotnik 22.10.2007, 16:47 |
| AlexeyVorotnikov, Т.е. получается, что нету конкретного определения, так? Т.е. на вопрос, типа "Принципиальные отличия GET и POST запросов как HTTP запросов" ответить не реально? |
| Автор: AlexeyVorotnikov 22.10.2007, 17:23 | ||
Почему нереально? Конкретные определения содержатся как раз в спецификации HTTP. |
| Автор: Samotnik 22.10.2007, 18:10 |
| Ну пажалста, обьясните, или хотя бы ссылочку дайте где почитать !! |
| Автор: Maksym 22.10.2007, 18:28 |
| Samotnik http://web-notes.ru/2006/03/get_or_post/ прочитал? |
| Автор: Samotnik 22.10.2007, 18:35 |
| Да! Хотелось бы по больше, по углубленее |
| Автор: _Michael 22.10.2007, 20:00 |
| http://www.javaportal.ru/java/articles/java_http_web/article03.html#http Вот отличная ccылка про HTTP протокол. думаю после нее все должно стать ясно |
| Автор: boevik 23.10.2007, 00:02 |
| Очень напоминает первое задание какого нибудь курса по J2EE. Отличие в сервлете в том, что есть две функции doGet and doPost, сотвественно каждая обрабатывает свого типа запрос. И отличие в html файле в oдном месте, method=post или method=get |
| Автор: COVD 25.3.2008, 19:10 | ||||||||||
| Хотел новую тему создать, да поиск подкинул этот топик. Сюда и пишу. Если создавать новый сервлет в IDE, то, например, Netbeans создает заготовку, где и GET и POST обрабатываются одним методом, т.е. разницы сервлету практически никакой:
Методы doGet и doPost формально есть, но они переадресуют запрос в processRequest(..). Его и надо модифицировать. В заготовке есть лишь закомментаренный вывод html страницы для примера. Однако сервлет также должен получать из запроса и параметры ( иначе смысла в нем нет ). Параметры в GET запросе включены в строку url (..?name=a&city=b&..) . Их извлекают как
В POST клиентское приложение пишет данные в outputstream, а в сервлете их можно прочитать из inputstream. Текст, например, читают так:
Ничто, казалось бы, не препятствует посылке POST запроса, в котором строка url содержит также и параметры, как в GET. Что произойдет, если в сервлете (Томкат6) мы попытаемся прочитать все из запроса - и GET и POST. Если сначала прочитать GET параметры:
, то POST параметры станут недоступны, и метод readLine вернет null, т.е. конец данных. Но стоит поменять местами две строки, то прочитываются и GET и POST данные:
Понятно, что пересылать данные в одном запросе обоими способами - плохая практика. |