Działania JSP, które używają konstrukcji w składni XML do sterowania zachowaniem mechanizmu serwletów. Dowiemy się bardziej szczegółowo o różnych elementach akcji JSP, takich jak żądanie klienta, odpowiedź serwera, kody statusu HTTP.
W tym samouczku nauczysz się:
Żądanie klienta JSP
Odpowiedź serwera JSP
Kody stanu HTTP JSP
Żądanie klienta JSP
Kiedy strona internetowa jest żądana, wysyła informacje do serwera WWW w nagłówku HTTP.
Możemy wykorzystać te informacje za pomocą obiektu HTTPServletRequest.
Informacje wysyłane przez przeglądarkę są przechowywane w nagłówku żądania HTTP.
Używamy różnych nagłówków do wysyłania informacji do obiektu żądania.
Poniżej opisano różne nagłówki:
nagłówek
Opis
Przykład
Zaakceptować
Określa typy MIME, które przeglądarka lub inni klienci mogą obsługiwać
Obraz / png lub image / jpeg.webp
Zaakceptuj-charset
Używa zestawu znaków używanego przez przeglądarkę do wyświetlania informacji
ISO-8859-1
Akceptuj - kodowanie
Określa typ kodowania obsługiwanego przez przeglądarkę
Gzip lub kompresuj
Zaakceptuj język
Określa określony język klienta
En, en_us
Upoważnienie
Nagłówek używany przez klientów podczas próby uzyskania dostępu do stron internetowych chronionych hasłem
Połączenie
Wskazuje, czy klient może obsługiwać trwałe połączenia HTTP (przeglądarka może pobierać wiele plików)
Utrzymać przy życiu
Długość treści
Dotyczy próśb o publikację. Daje rozmiar danych postu w bajtach
Ciastko
Zwraca ciasteczka na serwer (te, które zostały wcześniej wysłane do przeglądarki)
Gospodarz
Określa hosta i port oryginalnego adresu URL
Jeśli zmodyfikowano od
Wskazuje, że wymaga tylko strony, jeśli została zmieniona lub zmodyfikowana
Jeśli niezmodyfikowane od
Wskazuje, że wymaga strony tylko wtedy, gdy nie została zmieniona ani zmodyfikowana
Polecający
Wskazuje adres URL strony odsyłającej
Agent użytkownika
Identyfikuje przeglądarkę lub klienta wysyłającego żądanie
Do odczytywania nagłówka HTTP na stronie JSP używane są następujące metody:
Cookie [] getCookies () - zwraca tablicę zawierającą obiekty cookie wysłane przez klienta
Enumeration getAttributeNames () - zawiera wyliczenie nazw atrybutów dla żądania
Enumeration getHeaderNames () - zawiera wyliczenie nazw nagłówków.
Enumeration getParameterNames () - zawiera wyliczenie uzyskiwania nazw parametrów w żądaniu.
HttpSessiongetSession () - zwraca bieżącą sesję skojarzoną z żądaniem lub jeśli nie ma sesji to utworzy nową.
Locale getLocale () - zwraca preferowane ustawienia narodowe, w których klient będzie akceptował treść, które zostało przypisane do odpowiedzi. Domyślnie wartością będzie domyślne ustawienie regionalne serwera.
Obiekt getAttribute (String name) - zwraca wartość nazwanego atrybutu jako obiekt.
ServletInputStreamgetInputStream () - pobiera treść żądania jako dane binarne.
String getAuthType () - zwraca nazwę schematu uwierzytelniania w celu ochrony serwletu
String getCharacterEncoding () - zwraca nazwę kodowania znaków użytego w treści żądania.
String getContentType () - zwraca typ MIME treści żądania.
String getContextPath () - zwraca część żądania URI wskazującą ścieżkę kontekstu URI
String getHeader (String name) - zwraca nagłówek żądania jako ciąg
String getMethod () - zwraca nazwę metody HTTP, np. GET, POST
String getParameter (String name) - zwraca parametr żądania w postaci ciągu.
String getPathInfo () - zwraca informacje o ścieżce skojarzonej z adresem URL
Linia kodu 17: Używając obiektu żądania, pobieramy obiekt sesji tej konkretnej sesji i otrzymujemy wartość obiektu tej sesji
Linia kodu 19: Używając obiektu żądania, pobieramy ustawienia regionalne tej konkretnej sesji, tj. Ustawienia narodowe en_US dla tej strony JSP.
Linia kodu 21: Używając obiektu żądania, pobieramy informacje o ścieżce dla tego JSP. W tym przypadku ma wartość null, ponieważ nie podano ścieżki do adresu URL.
Linia kodu 23: Używając obiektu żądania, otrzymujemy ścieżkę kontekstu, tj. Ścieżkę główną
Linia kodu 25: Używając obiektu żądania, pobieramy nazwę serwera.
Linia kodu 27: Używając obiektu żądania, otrzymujemy port serwera.
Linia kodu 29-35: Używając obiektu żądania, otrzymujemy nazwy nagłówków, które pojawiają się jako wyliczenie, a zatem otrzymujemy wszystkie wartości nagłówków w nazwach nagłówków.
W ten sposób otrzymujemy wszystkie wartości nagłówka jako plik cookie, host, połączenie, zaakceptuj język, zaakceptuj kodowanie.
Po wykonaniu powyższego kodu otrzymasz następujące dane wyjściowe:
Dane wyjściowe :
Otrzymujemy serię wartości, takich jak nazwa sesji, nazwa ustawień regionalnych, nazwa ścieżki, nazwa serwera, nazwa portu, host, ścieżka kontekstu i wszystkie wartości nagłówków tej strony JSP.
Odpowiedź serwera JSP
Gdy żądanie jest przetwarzane, a następnie generowana jest odpowiedź z serwera WWW. Składa się z wiersza stanu, nagłówków odpowiedzi, pustej linii i dokumentu.
Jest to obiekt HTTPServletResponseclass, który jest obiektem odpowiedzi.
Linia statusu to wersja HTML.
Nagłówki odpowiedzi są wymienione poniżej:
nagłówek
Opis
Dopuszczać
Określa metody żądania, takie jak GET, POST, których żąda serwer
Kontrola pamięci podręcznej
Dokument odpowiedzi można przechowywać w pamięci podręcznej. Może być publiczny, prywatny i bez pamięci podręcznej. Brak pamięci podręcznej określa, że dokument nie powinien być buforowany
Połączenie
Instruuje, czy przeglądarka ma używać zapisanych połączeń HTTTP, czy nie. Wartość Close oznacza, że przeglądarka nie powinna używać trwałych połączeń w HTTPConnections, a „keep-alive” oznacza używanie trwałych połączeń
Dyspozycja treści
Zapytanie użytkownika, czy zapisać odpowiedź na dysku, czy nie
Kodowanie treści
Strona musi być zakodowana podczas transmisji
Długość treści
Liczba bajtów w odpowiedzi
Typ zawartości
Określa typ odpowiedzi MIME
Wygasa
Określa, do kiedy zawartość powinna być uważana za nieaktualną i nie powinna być buforowana
Ostatnio zmodyfikowany
Wskazuje, kiedy dokument był ostatnio modyfikowany
Lokalizacja
Powinien być dołączony do wszystkich odpowiedzi, które mają kod statusu 300 jako kod stanu
Odświeżać
Określa, jak znaleźć zaktualizowaną stronę.
Ponów po
Może być używany z odpowiedzią 503, aby poinformować klienta, jak szybko może powtórzyć żądanie
Ustawiony plik cookie
Określa plik cookie powiązany ze stroną
Poniżej przedstawiono metody wykorzystujące obiekt odpowiedzi:
Void setContentType (String type) - ustawia typ treści odpowiedzi
Void setContentLength (intlen) - ustawia długość treści odpowiedzi
Void setLocale (Locale lcl) - ustawia typ locale odpowiedzi
Void setStatus (intsc) - ustawia kod statusu odpowiedzi
Przykład:
W tym przykładzie omawiamy różne metody getLocale, flushbuffer, getWriter, get ContentType, setIntHeader.
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Odpowiedź guru dotycząca akcji
Odpowiedź guru
<%Ustawienia regionalne lcl = response.getLocale ();out.println ("Ustawienia regionalne to: + lcl + "\ n");response.flushBuffer ();PrintWriter output = response.getWriter ();output.println ("To jest z obiektu pisarza");Typ ciągu = response.getContentType ();out.println ("Typ zawartości: + type + "\ n");// Ustaw czas odświeżania i automatycznego ładowania na 5 sekundresponse.setIntHeader ("Odśwież", 5);// Pobierz aktualny czasDate dt = new Date ();out.println ("Dzisiejsza data to: + dt.toString () + "\ n");%>
Wyjaśnienie kodu:
Linia kodu 13: Używając obiektu odpowiedzi, otrzymujemy obiekt locale tej sesji JSP
Linia kodu 15: Używając obiektu odpowiedzi, flushbuffer jest używany do wymuszenia zawartości bufora na kliencie
Linia kodu 16: Używając obiektu odpowiedzi, otrzymujemy obiekt pisarza, który otrzymuje dane wyjściowe w strumieniu wyjściowym
Code Line18: Używając obiektu odpowiedzi, otrzymujemy typ zawartości, tj. Typ MIME obiektu odpowiedzi
Linia kodu 21: Używając obiektu odpowiedzi, jest on używany do automatycznego ładowania co 5 sekund, ponieważ 5 jest ustawionym drugim parametrem
Po wykonaniu powyższego kodu otrzymasz następujące dane wyjściowe:
Wynik:
Tutaj otrzymujemy dane wyjściowe z obiektu writer z getWriter, który daje nam obiekt i możemy wyprowadzić w strumieniu wyjściowym.
Lokalizację otrzymujemy jako en_us, a typ treści jako text / html
Otrzymujemy kodowanie jako ISO 8859
Dzisiejsza data jest aktualną datą.
Kody stanu HTTP JSP
Po przetworzeniu żądania generowana jest odpowiedź. Linia statusu odpowiedzi składa się z wersji HTTP, kodu statusu i powiązanego komunikatu.
Wiadomość jest bezpośrednio powiązana z kodem statusu i wersją HTTP i jest określana przez serwer.
Domyślnie 200 jest ustawiony jako kod stanu w JSP, więc nie musimy go jawnie ustawiać.
Możemy ustawić jako metodę response.setStatus ()
Kody dzielą się na 5 następujących kategorii:
100-199 - Tutaj klient wskazuje, że powinien odpowiedzieć jakąś czynnością
200-299 - Oznacza to, że żądanie powiodło się
300-399 - są używane dla plików, które zostały przeniesione i zwykle zawierają nagłówek lokalizacji wskazujący nowy adres
400-499 - Wskazuje błąd klienta
500-599 - Wskazuje błąd serwera
Poniżej przedstawiono niektóre typowe kody stanu:
200 - Wskazuje, że wszystko jest w porządku
301 - Przeniósł się na stałe
304 - Nie zmodyfikowano od ostatniej zmiany
400 - Złe żądanie
404 Nie Znaleziono
405 - Nie znaleziono metody
500 wewnętrzny błąd serwera
503 Usługa niedostępna
505 - wersja HTTP nie jest obsługiwana
Niektóre z jego metod są wymienione poniżej:
Publiczne void setStatus (intstatusCode)
Ustawia kod statusu, który chcemy ustawić na tej stronie JSP, co da nam komunikat o ustawionym kodzie statusu
Publiczne void sendRedirect (adres URL ciągu)
Generuje odpowiedź 302 wraz z nagłówkiem lokalizacji podającym adres URL nowego dokumentu
Publiczne void sendError (intcode, Stringmsg)
Wysyła kod statusu wraz z krótką wiadomością i jest sformatowany w dokumencie HTML.
Przykład:
W tym przykładzie jawnie wysyłamy błąd do strony JSP.
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Kod statusu guru <% response.sendError (404, "Nie znaleziono strony guru"); %>
Wyjaśnienie kodu:
Linia kodu 10: Korzystając z obiektu odpowiedzi, wysyłamy błąd do strony z dwoma parametrami.
Kod stanu - może to być dowolny z powyższych. W tym przypadku opisaliśmy jako 404
Wiadomość - może to być dowolna wiadomość, w której chcemy pokazać błąd
Jeśli wykonasz powyższy kod, otrzymasz następujące dane wyjściowe:
Wynik:
Tutaj otrzymujemy kod błędu 404, który został wysłany z kodu, a także wyświetla komunikat „Guru Page not found” widoczny na wyjściu.
Podsumowanie:
W tym artykule dowiedzieliśmy się o żądaniu klienta i odpowiedzi serwera, w jaki sposób żądanie jest przechwytywane i jak manipuluje się odpowiedziami.
Dowiedzieliśmy się również o kodach stanu HTTP, które pokazują kody błędów lub kody powodzenia dla określonego pliku.