Методы класса HttpServlet управляющие запросами клиента используют два аргумента:

  • Объект HttpServletRequest, который возвращает данные от клиента.
  • Объект HttpServletResponse, который возвращает ответ к клиенту.

Объекты HttpServletRequest

Объекты HttpServletRequest предоставляют доступ к данным HTTP заголовка, таким как любые закладки (cookies) найденные в запросе и HTTP методы, с помощью которых был сделан запрос. Объект HttpServletRequest также позволяет Вам получить аргументы, которые клиент направил вместе с запросом.

Чтобы получить данные клиента:

  • Метод getParameter возвращает величину именованных параметров. Если Ваш параметр может иметь более чем одну величину, используйте getParameterValues. Метод getParameterValues возвращает массив величин именованного параметра. (Метод getParameterNames предоставляет имена параметров.)
  • Для HTTP запросов GET, метод getQueryString возвращает строковую (String) величину необработанных данных клиента. Вам самим необходимо разобрать строку, чтобы получить параметры и значения.
  • Для HTTP запросов POST, PUT, и DELETE,
    • Если вы ожидаете текстовую информацию, метод getReader возвращает объект BufferedReader, чтобы Вы могли использовать, считать необработанные данные.
    • Если Вы ожидаете двоичные данные, метод getInputStream возвращает объекта ServletInputStream, чтобы Вы могли использовать, считать необработанные данные.

Объекты HttpServletResponse

Объект HttpServletResponse предоставляет два пути возвращения данных к пользователю:

  • Метод getWriter возвращает объект Writer
  • Метод getOutputStream возвращает поток ServletOutputStream

Используйте метод getWriter для возвращения пользователю текстовой информации, и метод getOutputStream для двоичных данных.

Закрытие объектов Writer или ServletOutputStream после отправки ответа позволяет серверу узнать, когда завершился ответ.

Данные HTTP заголовка

Вам необходимо установить данные HTTP заголовка, прежде чем вы получите доступ к объектам Writer или OutputStream. Класс HttpServletResponse предоставляет методы для доступа к данным заголовка. Например, метод setContentType устанавливает тип содержимого Content-type. Этот заголовок чаще всего единственный устанавливаемый вручную.