| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > service vs doGet-doPost |
| Автор: check 6.1.2007, 13:40 |
| Такой скорее теоретический вопрос относительно сервлетов... Есть ли какой-то практический смысл в использовании методов doGet и doPost вместо единого метода service для обработки и GET и POST запросов? Или это просто дело вкуса? Эккель в своей книге пишет: "я никогда не видел объяснения, которое заставило бы меня поверить, что это не просто интертность мышления CGI программистов, которые привыкли обращать внимание, используется ли GET или POST". |
| Автор: Greg 6.1.2007, 14:15 |
| Чесно говоря,трудно представить себе логику приложения,которая бы зависела от метода передачи параметров в HTTP запросе. Я,например,не встречался с такого рода задачами,где разделение логики работы на POST и GET оправдывало бы себя. |
| Автор: check 6.1.2007, 15:40 |
| В общем, да, здравый смысл подсказывает что такое разделение реально не нужно. Просто хотел в этом удостовериться. Тот же Эккель пишет: "Однако держите в уме, что я что-то упустил, что, возможно, является хорошей причиной в пользу использования doGet( ) и doPost( )". Так что если кто-то вдруг знает какой-то секрет, неведомый Брюсу Эккелю - поделитесь |
| Автор: Maksym 6.1.2007, 15:48 |
| check Иногда необходимо, чтобы параметры запроса передвались в браузерной строке и были видны пользователю. Хороший пример -- Яндекс: скопировал браузерную строку и можешь вызывать запрос в сдед раз одним кликом, или отправить другу... |
| Автор: check 6.1.2007, 16:14 |
| Maksym, речь не об том. Я не собирался тут обсуждать целесообразность существования методов POST и GET Но в сервлете метод service совершенно одинаковым образом обрабатывает GET и POST запросы, однако в литературе в основном рекомендуют создавать для получения гетов и постов отдельные методы doGet и doPost. Вот я и хотел узнать - это просто дань традиции, или это действительно для чего-то нужно. |
| Автор: Maksym 6.1.2007, 17:15 |
| check Сори, я понял |
| Автор: Greg 6.1.2007, 17:59 | ||
Вот пример из кода ActionServlet в Struts 1.2.4:
Вот кстати,http://www.jguru.com/faq/view.jsp?EID=8824 про это пишет человек на jguru.com. Оффтоп: Когда я впервые начал изучать Java,я понял,что это не просто новый язык,а новый мир со своими правилами и особенностями.Стилю написания программ,как оказалось в этом мире,отводилась далеко не самая последняя роль.И это всё благодаря очень логичному языку Java,в котором кажется всё расставлено на свои места и нет ничего лишнего. Даже если логика приложения не зависит от метода передачи данных,всё равно переопределять метод service считается дурным тоном,хоть это и уменьшает размер кода.Например потому,что в где-нибудь в далёком кошмарном будущем эта зависимость может появиться. |
| Автор: check 6.1.2007, 22:48 |
| Greg, убедил. Меняю во всех своих сервлетах service на doGet и doPost. Благо, сервлетов пока не так много. |