HTTP

Ještě před tím, než se pustíme do psaní našeho prvního servletu, musíme znát několik základních rysů HTTP protokolu.

HTTP je request-response orientovaný protokol. HTTP požadavek se skládá z metody request , URI, hlaviček a těla dotazu. HTTP odpověď obsahuje kód odpovědi, hlavičky a tělo.

Metoda service HttpServletu rozděluje požadavek vstupním metodám servletu podle typu HTTP požadavku. Jsou rozeznávaný standardní HTTP/1.1 metody: GET, HEAD, PUT, POST, DELETE, OPTIONS a TRACE. Ostatní metody jsou vráceny jako: Bad Request HTTP error. HTTP metoda XXX je přiřazena metoda servletu doXxx, (GET -> doGet()). Všechny tyto metody očekávají parametry „(HttpServletRequest req, HttpServletResponse res)“. Metody doOptions() a doTrace() mají dostatečnou defaultní implementaci a obvykle je nepředefinovávají. Metoda HEAD (která vrací pouze hlavičky) je řešena voláním doGet() a ignorací výstupu této metody. Tím nám zůstávají metody doGet, doPut, doPost a doDelete, jejich výchozí implementace v HttpServletu vrací: Bad Request HTTP error. Podtřída HttpServletu předefinovává jednu či více těchto metod smysluplnou implementací.

Data požadavku vstupují do servletu přes první argument typu HttpServletRequest (který je podtřídou obecnější třídy ServletRequest). Odpověď může být vytvořena skrz druhou proměnou, která je typu HttpServletResponse (podtřída ServletResponse).

V okamžiku, kdy v našem prohlížeči zadáme požadavek na URL, je použita metoda GET. Odpověď se bude skládat z těla odpovědi a hlaviček popisující tělo (obzvláště Content-Type a Content-Encoding). Pokud posíláme HTML formulář, můžeme použít metodu GET nebo POST. S GET požadavkem jsou parametry zakódovaný v URL a s POST požadavkem jsou přeneseny v těle požadavku.