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.