Заголовки запроса

Заголовки http-запроса представляют собой предшествующие телу запроса пары «имя-значение», которые формируются клиентом web-приложения (браузером) и пересылаются серверу. В общем случае одному заголовку может соответствовать несколько значений.

В простых сервлетах или jsp-странице разработчику доступны только три метода для работы с заголовками запроса: getHeader (получить первое значение заголовка по егоимени), setHeaders (получить все значения заголовка по имени), и getHeaderNames (получить все имена заголовков запроса).

Если же запрос формируется с помощью классов пакета httpclient ( раздел 3.4 ), тотод addRequestHeader объекта типа GetMethod (или PostMethod)позволяетдобавить собственные заголовки запроса, как это сделано в примере.

protected void doGet(HttpServletRequest rq, HttpServletResponse rs)

throws ServletException, IOException {

HttpClient hc = new HttpClient ();

String uri = "https://localhost:8080/ANaive/Jjj";

GetMethod gm = new GetMethod (uri);

gm.addRequestHeader("MyHeader1", "MyHeadetValue1");

gm.addRequestHeader("MyHeader2", "MyHeadetValue2");

gm.addRequestHeader("MyHeader3", "MyHeadetValue3");

hc.executeMethod(gm);

rs.setContentType("text/html");

InOutServlet inout = new InOutServlet (rs.getOutputStream(),

gm.getResponseBodyAsStream());

inout.perform();

}

На представлен фрагмент сервлета, формирующего три дополнительных заголовка запроса с именами MyHeader1, MyHeader2, MyHeader3. В данном примере все значения заголовком имеют строковый формат.

Кроме строкового значения заголовков запроса могут быть целочисленного типа или типа Date. В этих случаях можно воспользоваться двумя другими разновидностями метода getHeader: getIntHeader или getDateHeader.

Заголовки ответа

Каки http-запрос http-ответ всегда можно дополнить собственными заголовками, которые потом могут быть получены и обработаны на стороне клиента.

protected void service(HttpServletRequest rq, HttpServletResponse rs)

throws ServletException, IOException {

rs.setContentType("text/html");

rs.addHeader("Jjj-Header1", "Jjj-HeaderValue1");

rs.addHeader("Jjj-Header2", "Jjj-HeaderValue2");

}



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: