Для чего нужен интерфейс 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()— данные, установленные сервером для передачи между компонентами).