[ Pobierz całość w formacie PDF ]
.Żš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.W tym celu serwer bšd to umieszcza wszystkie żšdania wkolejce i po kolei przekazuje je do pojedynczej kopii serwletu, bšd też tworzypulę kopii serwletów, z których każda w danej chwili będzie obsługiwać tylkojedno żšdanie.Oznacza to, że nie musisz się przejmować równoczesnym dostępemdo zwyczajnych pól (zmiennych instancyjnych) serwletu.Niemniej jednak wcišżkonieczna jest synchronizacja dostępu do zmiennych klasowych (pól oznaczonychjako static) oraz danych przechowywanych poza serwletem.Synchroniczny dostęp do serwletów może w znaczšcym stopniu ograniczyćefektywnoć działania serwera (czyli czas oczekiwania na wyniki) w przypadkachgdy serwlet wykorzystywany jest bardzo często.A zatem, musisz dobrzeprzemyleć czy należy korzystać z interfejsu SingleThreadModel.Metoda destroySerwer może podjšć decyzję o usunięciu z pamięci załadowanej do niej kopiiserwletu.Decyzja taka może zostać podjęta w wyniku jawnego żšdaniaadministratora lub ze względu na fakt, iż serwlet nie był wykorzystywany przezdługi okres czasu.Niemniej jednak, nim serwlet zostanie usunięty z pamięci,serwer wywoła jego metodę destroy.Metoda ta, daje serwletowi możliwoćzamknięcia połšczeń z bazami danych, zatrzymania wštków wykonywanych w tle,zapisania listy cookies lub wartoci licznika odwiedzin w pliku na dysku, lubwykonania jakiekolwiek innych czynnoci porzšdkowych
[ Pobierz całość w formacie PDF ]