[ Pobierz całość w formacie PDF ]
.Poniżej podałem te powody:Istnieje możliwoć dodania obsługi żšdań innych typów; wystarczy w tym celu (naprzykład w klasie potomnej) zaimplementować metody doPut, doTrace, itd.Wprzypadku bezporedniego przesłonięcia metody service nie można tego zrobić.Istnieje możliwoć dodania obsługi dat modyfikacji; w tym celu wystarczyzaimplementować metodę getLastModified.W przypadku wykorzystania metody doGet,standardowa implementacja metody service wywołuje metodę getLastModified w celupodania wartoci nagłówków Last-Modified.Podanie wartoci tych nagłówków jestkonieczne dla prawidłowej obsługi warunkowych żšdań GET (czyli żšdańzawierajšcych nagłówek If-Modified-Since).Stosowny przykład znajdziesz wpodrozdziale 2.8, pt.: Przykład wykorzystania inicjalizacji serwletu i datymodyfikacji strony.Uzyskuje się automatycznš obsługę żšdań HEAD.W takim przypadku serwer zwracawyłšcznie nagłówki i kod statusu wygenerowany przez metodę doGet, pomijajšcwszelkš zawartoć wygenerowanego dokumentu.Żšdania HEAD sš bardzo przydatne wprzypadku tworzenia programów korzystajšcych z protokołu HTTP.Na przykład,narzędzia sprawdzajšce poprawnoć hiperpołšczeń umieszczonych na stronach WWW,aby zredukować obcišżenie serwera, bardzo często posługujš się włanieżšdaniami HEAD a nie GET.Uzyskuje się automatycznš obsługę żšdań OPTIONS.Jeli metoda doGet zostałazaimplementowana, to standardowa metoda service odpowiada na żšdania OPTIONSzwracajšc nagłówek Allow informujšcy, że obsługiwane sš żšdania GET, HEAD,OPTIONS oraz TRACE.Uzyskuje się automatycznš obsługę żšdań TRACE.Żšdania TRACE stosowane sšpodczas testowania programów korzystajšcych z protokołu HTTP w odpowiedzi nanie serwer zwraca wyłšcznie nagłówki HTTP.PodpowiedJeli tworzony serwlet ma w identyczny sposób obsługiwać zarówno żšdania GETjak i POST, to wywołuj metodę doPost z metody doGet, lub na odwrót.Nie stosujnatomiast rozwišzania polegajšcego na bezporednim przesłonięciu metodyservice.Metody doGet, doPost oraz doXxxTe metody zawierajš najistotniejsze czynnoci wykonywane przez serwlet.W 99procentach przypadków będš Cię interesowały wyłšcznie żšdania GET lub POST, azatem będziesz implementował metody doPost lub doGet.Jeli jednak będzieszchciał, to nic nie stoi na przeszkodzie, aby zaimplementować także metodędoDelete służšcš do obsługi żšdań DELETE, doPut obsługujšcš żšdania PUT,doTrace obsługujšcš żšdania TRACE oraz doOptions służšcš do obsługi żšdańOPTIONS.Pamiętaj jednak, że możesz skorzystać z automatycznej obsługi żšdańOPTIONS oraz TRACE, jakš dysponuje metoda service, opisana w poprzednimpodrozdziale.Zwróć uwagę, iż nie ma metody doHead, gdyż system automatyczniewykorzystuje wiersz statusu oraz nagłówki generowane przez metodę doGet, takżedo obsługi żšdań HEAD.Interfejs SingleThreadModelStandardowo system tworzy jednš kopię serwletu, a następnie używa nowych wštkówdo obsługi nadsyłanych żšdań; przy czym, w przypadku gdy nowe żšdanie nadejdziezanim wykonywanie poprzedniego żšdania zostanie zakończone, uruchamiane sškolejne wštki wykonywane jednoczenie.Oznacza to, że metody doGet oraz doPostmuszš bardzo uważnie synchronizować dostęp do pól oraz innych, wspólnychinformacji.Jest to konieczne, gdyż wiele wštków może jednoczenie próbowaćkorzystać z tych danych.Więcej informacji na ten temat znajdziesz wpodrozdziale 7.3, pt.: Trwałe przechowywanie stanu serwletu i automatyczneodwieżanie stron.Jeli nie chcesz, aby serwlet działał w ten standardowy wielowštkowy sposób, wystarczy zaimplementować w nim interfejsSingleThreadModel:public class MojServlet extends HttpServletimplements SingleThreadModel {//.kod servletu.//}Jeli zaimplementujesz ten interfejs, system zagwarantuje, że w dowolnej chwiliz pojedynczej kopii serwletu będzie korzystał co najwyżej jeden wštekobsługujšcy żšdania
[ Pobierz całość w formacie PDF ]