[ Pobierz całość w formacie PDF ]
.Zamiast niego, wywołaj metodę doPost z metodydoGet (lub na odwrót), jak pokazałem na poniższym przykładzie:public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {// kod servletu}public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}Choć metoda ta wymaga wpisania kilku dodatkowych wierszy kodu, to jednak z pięciupowodów jest lepsza od bezpośredniego przesłaniania metody service.Poniżej podałem tepowody:1.Istnieje możliwość dodania obsługi żądań innych typów; wystarczy w tym celu (na przykładw klasie potomnej) zaimplementować metody doPut, doTrace, itd.W przypadkubezpośredniego przesłonięcia metody service nie można tego zrobić.2.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 wartości nagłówków Last-Modified.Podanie wartości tych nagłówków jestkonieczne dla prawidłowej obsługi warunkowych żądań GET (czyli żądań zawierającychnagłówek If-Modified-Since).Stosowny przykład znajdziesz w podrozdziale 2.8, pt.: Przykład wykorzystania inicjalizacji serwletu i daty modyfikacji strony.3.Uzyskuje się automatyczną obsługę żądań HEAD.W takim przypadku serwer zwracawyłącznie nagłówki i kod statusu wygenerowany przez metodę doGet, pomijając wszelkązawartość wygenerowanego dokumentu.%7łądania HEAD są bardzo przydatne w przypadkutworzenia programów korzystających z protokołu HTTP.Na przykład, narzędziasprawdzające poprawność hiperpołączeń umieszczonych na stronach WWW, abyzredukować obciążenie serwera, bardzo często posługują się właśnie żądaniami HEAD a nieGET.4.Uzyskuje się automatyczną obsługę żądań OPTIONS.Jeśli 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 orazTRACE.5.Uzyskuje się automatyczną obsługę żądań TRACE.%7łądania TRACE stosowane są podczastestowania programów korzystających z protokołu HTTP w odpowiedzi na nie serwerzwraca wyłącznie nagłówki HTTP.PodpowiedzJeśli tworzony serwlet ma w identyczny sposób obsługiwać zarówno żądania GET jak i POST, to wywołuj metodędoPost z metody doGet, lub na odwrót.Nie stosuj natomiast rozwiązania polegającego na bezpośrednimprzesłonięciu metody service.Metody doGet, doPost oraz doXxxTe metody zawierają najistotniejsze czynności wykonywane przez serwlet.W 99 procentachprzypadków będą Cię interesowały wyłącznie żądania GET lub POST, a zatem będzieszimplementował metody doPost lub doGet.Jeśli jednak będziesz chciał, to nic nie stoi naprzeszkodzie, aby zaimplementować także metodę doDelete służącą do obsługi żądań DELETE, doPutobsł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 oraz43 Rozdział 2.Pierwsze serwletyTRACE, jaką dysponuje metoda service, opisana w poprzednim podrozdziale.Zwróć uwagę, iż niema metody doHead, gdyż system automatycznie wykorzystuje wiersz statusu oraz nagłówkigenerowane przez metodę doGet, także do obsługi żądań HEAD.Interfejs SingleThreadModelStandardowo system tworzy jedną kopię serwletu, a następnie używa nowych wątków doobsługi nadsyłanych żądań; przy czym, w przypadku gdy nowe żądanie nadejdzie zanimwykonywanie poprzedniego żądania zostanie zakończone, uruchamiane są kolejne wątkiwykonywane jednocześnie
[ Pobierz całość w formacie PDF ]