Gymterview
junior

Для чего нужен интерфейс ServletRequest

ServletRequest — это интерфейс для получения данных из клиентского запроса: параметров, заголовков, входного потока, информации о соединении и атрибутов запроса. Контейнер создаёт объект ServletRequest для каждого входящего запроса и передаёт его в метод service().

Основные возможности

  • Получение параметров запроса: getParameter(), getParameterMap()
  • Получение атрибутов: getAttribute(), setAttribute()
  • Информация о соединении: getRemoteAddr(), getRemoteHost(), getServerPort()
  • Входной поток данных: getInputStream(), getReader()
  • Кодировка: getCharacterEncoding(), setCharacterEncoding()

Подкласс HttpServletRequest добавляет HTTP-специфичные методы: getHeader(), getCookies(), getSession(), getMethod(), getRequestURI(), getContextPath(). В Spring MVC HttpServletRequest оборачивается в объекты @RequestParam, @RequestBody, @PathVariable, но при необходимости доступен напрямую как аргумент метода контроллера.

На собеседовании: покажите, что знаете разницу между параметрами (getParameter() — данные из query string/form) и атрибутами (getAttribute() — данные, установленные сервером для передачи между компонентами).