У меня есть сомнения относительно HttpServletRequest
life life. Уничтожен ли объект request
после того, как он попал в controller
?Что такое объект HttpServletRequest?
ответ
Срок службы объекта HttpServletRequest
таков: время обслуживания HTTP-запроса сервлета.
Может быть создан непосредственно перед вызовом методов сервлетов doGet()
, doPost()
и т. Д. И может быть уничтожен сразу после этого. Он действителен только для использования при подаче запроса.
Примечание: Однако Servlet контейнеров может повторного использование HttpServletRequest
объектов для нескольких запросов (а это обычно имеет место), но они будут «очистить» или сброс так что никаких объектов (например, параметры или атрибуты) будет протекать между Запросы. Это просто из-за проблемы с производительностью: гораздо быстрее и дешевле сбросить объект HttpServletRequest
, чем выбросить существующий и создать новый.
В типичной реализации контейнера сервлета при входе HTTP-запроса создается HttpServletRequest
, когда входные данные HTTP запроса обрабатываются контейнером Servlet. Весь запрос может быть лениво инициализирован (например, параметры могут обрабатываться только и обрабатываться, если они действительно доступны, например, с помощью метода getParameter()
). Тогда это HttpServletRequest
(который проходит ServletRequest
) пропускают через сервлет фильтры, а затем передается на Servlet.service()
, который направит вызов doGet()
, doPost()
и т.д., основанный на методе HTTP (GET
, POST
, PUT
и т.д.). Затем запрос будет оставаться в живых до тех пор, пока пара запроса-ответа не будет циклически возвращаться по всей цепочке фильтров. И тогда он будет уничтожен или сброшен (прежде чем он будет использоваться для другого HTTP-запроса).
- 1. Что такое перегруженный объект?
- 2. Что такое T [] объект?
- 3. Что такое полный объект?
- 4. Что такое объект persistence?
- 5. Что такое объект страницы?
- 6. Что такое родной объект?
- 7. Что такое объект k?
- 8. Что такое сериализуемый объект?
- 9. Что такое объект «NoneType»?
- 10. Что такое объект обещания?
- 11. Что такое объект недвижимости?
- 12. Что такое произвольный объект?
- 13. Что такое объект STPCard?
- 14. Что такое хром-объект?
- 15. Объект, внезапно отсутствующий в HttpServletRequest
- 16. Можно ли изменить объект httpservletrequest
- 17. Объект HttpServletRequest в Spring webflow?
- 18. Извлечь SOAP-объект из HttpServletRequest
- 19. Что такое «объект метода» и «объект класса»?
- 20. Что такое объект? Где объект здесь?
- 21. Что такое объект передачи данных?
- 22. Что такое объект() хорошо для?
- 23. Что такое объект в C?
- 24. Что такое «неполностью построенный объект»?
- 25. Что такое постоянный объект объединения?
- 26. Что такое объект словаря HttpContext.Items?
- 27. Что такое объект класса (java.lang.Class)?
- 28. Объекты PHP - Что такое объект?
- 29. Что такое socket.emit (объект, строка)?
- 30. Что такое объект в javascript
Если кто-то передает объект HttpServletRequest в другое место, объект HttpServletRequest останется за циклом запроса. Как вы думаете? –
Да, вы можете это сделать, но использование объекта запроса вне цикла запроса недействительно. Поэтому настоятельно не рекомендуется. – icza
@icza вы не представляете, насколько вы только что мне помогли прямо сейчас - у нас была проблема довольно долго, когда «HttpServletRequest» был передан через «@ Async» весны, и в какой-то момент это поля, которые очищаются. Ваш вход - «Однако контейнеры сервлетов могут повторно использовать объекты HttpServletRequest для нескольких запросов (и это обычно имеет место), но они будут« очищены »или сброшены, поэтому никакие объекты (такие как параметры или атрибуты) не будут протекать между запросами« абсолютно ** пятно сверху! **. Спасибо! – Eugene