Moduł Servlet::Http::HttpServlet

Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowa

Spis treści

  1. Nazwa
  2. Jak używać
  3. Opis
  4. Konstruktor
  5. Metody
  6. Autor modułu
  7. Autor opisu

Nazwa

Servlet::Http::HttpServlet - klasa servleta HTTP

Jak używać

$servlet->doDelete($request, $response); $servlet->doGet($request, $response); $servlet->doHead($request, $response); $servlet->doOptions($request, $response); $servlet->doPost($request, $response); $servlet->doPut($request, $response); $servlet->doTrace($request, $response); $time = $servlet->getLastModified($request); $servlet->service($request, $response);

Opis

Ta klasa jest klasą bazową dla servletów HTTP. Klasy pochodne muszą nadpisać przynajmniej jedną z poniższych metod:

Należy pamiętać, że servlety zazwyczaj działają na serwerach wielowątkowych, należy więc z ostrożnością synchronizować dostęp do współdzielonych danych. Do tych danych należą: obiekty, zmienne klasowe, pliki, połączenia do baz danych i połączenia sieciowe.

Konstruktor

new()
właściwie nic nie robi. Cała inicjalizacja odbywa się za pomocą metody init().

Metody

doDelete($request, $response)
Wywoływana przez serwer pozwala servletowi obsłużyć żądanie DELETE, czyli usunąć dokument z serwera.

Jeśli metoda ta jest źle sformatowana, to zwróci informację "Bad Request".

Parametry: Wysyła:
doGet($request, $response)
Wywoływana przez serwer pozwala servletowi obsłużyć żądanie REQUEST

Nadpisanie tej metody automatycznie wspiera żądania HTTP HEAD. Żądanie HEAD jest żądaniem GET, które nie zwraca BODY, tylko nagłówki HEAD.

UWAGA! Kontener servletu musi zapisać nagłówki zanim da odpowiedź (response), ponieważ tego wymaga HTTP.

Jeśli metoda ta jest źle sformatowana to zwróci informację "Bad Request".

Parametry: Wysyła:
doHead($request, $response)
Wywoływana przez serwer metoda pozwala servletowi obsłużyć żądanie HEAD. Klient wysyła żadanie HEAD gdy chce widzieć tylko nagłówki. Metoda HEAD liczy bajty wysyłane na wyjście w odpowiedzi na dokładne ustawienie długości zawartości.

Jeśli metoda ta jest źle sformatowana to zwróci informację "Bad Request". /

Parametry:

Wysyła:
doOptions($request, $response)
Metoda wywoływana przez serwer, która pozwala servletowi obsłużyć żądanie OPTIONS request. OPTIONS determinują, które z metod HTTP server wspiera i zwraca odpowiedni nagłówek. Np jeśli sevlet nadpisuje doGet() to metoda zwróci:

GET, HEAD, TRACE, OPTIONS

Nie ma potrzeby do nadpisywania tej metody dopóki servlet nie implementuje nowych metod HTTP ponad wersję HTTP 1.1.

Jeśli metoda ta jest źle sformatowana to zwróci informację "Bad Request".

Parametry: Wysyła:
doPost($request, $response)
Wywoływana przez serwer pozwala servletowi obsłużyć żądanie POST pozwalające wysyłać na serwer dane o nielimitowanej długości. Jest to metoda analogiczna do doGet($request, $response)

Kontener servletu musi zapisać nagłówki zanim da odpowiedź (respone), ponieważ tego wymaga HTTP.

Jeśli metoda ta jest źle sformatowana to zwróci informację "Bad Request". /

Parametry:

Wysyła:
doPut($request, $response)
Wywoływana przez serwer pozwala servletowi obsłużyć żądanie Put pozwalające na zapisanie na serwerze pliku.

Nadpisując tę metodę należy pozostawić niezmienione nagłówki wysyłane razem z żadaniem (Content-Length, Content-Type, Content-Transfer-Encoding, Content-Encoding, Content-Base, Content-Language, Content-Location, Content-MD5 and Content-Range). Jeśli metoda nie może obsłużyć nagłówków zawartości, to musi wysyłać informację o błędzie (HTTP 501 - Not Implemented) i odrzucać żądanie.

Jeśli metoda ta jest źle sformatowana to zwróci informację "Bad Request".

Parametry: Wysyła:
getLastModified($request)
Zwraca czas ostatniej modyfikacji (w milisekundach od 1 stycznia 1970 GTM). Jeśli czas nie jest znany, to zwraca liczbę ujemną.

Servlety wspierające żadania i mogą szybko ustalićczas ostatniej modyfikacji powinnny nadpisywać tę metodę, co pozwoli przeglądarce na szybszą ich obsługę.

Parametry:
service($request, $response)
Przerzuca zadanie klienta metody doXXX zdefiniowanej w tej klasie. Nie ma potrzeby nadpisywania tej metody. Parametry: Wysyła:

Autor modułu

Brian Moseley (bcm@maz.org)

Autor opisu

Łukasz Łoza
Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowa - Perl - Wyklady
[c] Piotr Arłukowicz, materiały z tej strony udostępnione są na licencji GNU.