Kolejna porcja materiału związanego z SCWCD

Section 1: The Servlet Technology Model

  • Using the HttpServletRequest interface, write code to retrieve HTML form parameters from the request, retrieve HTTP request header information, or retrieve cookies from the request.

Parametry

Interfejs HttpServletRequest dziedziczy po interfejsie ServletRequest i to właśnie dzięki metodom drugiego mamy możliwość pobrania parametrów przesyłanych podczas submitu formularza czy dołączonych do adresu URL. Do pobierania parametrów służą metody:

  • String getParameter(String name) - pobiera parametr dołączony do requesta, w przypadku gdy pod nazwą znajduje się kilka wartości zwracana jest jedynie pierwsza z nich,
  • Map getParameterMap() - zwraca mapę dołączonych parametrów, gdzie kluczami mapy są nazwy parametrów a jej wartościami tablice String zawierające wartości parametrów przesyłanych w requescie,
  • Enumeration getParametreNames() - wyliczenie wszystkich nazw parametrów dołączonych do requesta,
  • String[] getParameterValues(String name) - pobiera wartości parametrów, w przypadku gdy parametr ma tylko jedną wartość zwracana jest tablica jednoelementowa.

Nazwami parametrów są nazwy pól umieszczonych w pliku html (np.: input ...="" name="nazwaParametru") bądź te dołączone do żądanego adresu (np.: http://.../url.do?nazwaParametru=wartoscParametru)

Nagłówki

Nagłówki są charakterystyczne dla protokołu HTTP, zatem metody powiązane z nagłówkami znajdują się w interfejsie HttpServletRequest.

  • String getHeader(String name) - zwraca wartość przesyłaną pod konkretną nazwą nagłówka, wielkość liter w jego nazwie nie ma znaczenia, w przypadku gdy do requesta nie został dołączony nagłówek o podanej nazwie zwracany jest null,
  • Enumeration getHeaderNames() - metoda zwraca wyliczenie wszystkich nagłówków dołączonych do obiektu requesta, istnieje jednak możliwość, że niektóre kontenery serwletów nie pozwolą na użycie tej metody – wówczas zwracany jest null,
  • Enumeration getHeaders(String name) - wyliczenie wartości przesyłanego nagłówka,

Jeśli podczas pobierania wartości nagłówka wiemy, że jest on typu innego niż String możemy użyć jednej z metod pomocniczych, która za nas zajmuje się niezbędną konwersją:

  • int getIntHeader(String name)
  • long getDateHeader(String name)

Ciasteczka

Ciasteczka, podobnie jak nagłówki, są charakterystyczne dla protokołu HTTP. I tym razem metoda odpowiedzialna za pobieranie ciasteczek znajduje się w interfejsie HttpServletRequest. Ciasteczka są kolejnym nagłówkiem wysyłanym razem z requestem (Cookie:nazwa=wartość).

Do wartości ciasteczek można dobrać się na dwojaki sposób:

  • korzystając z metody Cookie[] getCookies(),
  • bądź dobierając się bezpośrednio do nagłówków metodami opisanymi powyżej (po co skoro Servlet API udostępnia taką operację? (: )

Podobne posty