Co to jest obiekt niejawny JSP?
- Obiekty niejawne JSP są tworzone podczas fazy tłumaczenia strony JSP do serwletu.
- Te obiekty mogą być bezpośrednio używane w rysikach, które są umieszczane w metodzie usługi.
- Są tworzone przez kontener automatycznie i można uzyskać do nich dostęp za pomocą obiektów.
Ile obiektów niejawnych jest dostępnych na stronie JSP?
W kontenerze dostępnych jest 9 typów niejawnych obiektów:
- na zewnątrz
- żądanie
- odpowiedź
- config
- podanie
- sesja
- pageContext
- strona
- wyjątek
Uczmy się jeden po drugim
na zewnątrz
- Out jest jednym z niejawnych obiektów służących do zapisywania danych w buforze i wysyłania danych wyjściowych do klienta w odpowiedzi
- Obiekt Out umożliwia nam dostęp do strumienia wyjściowego serwletu
- Out jest obiektem klasy javax.servlet.jsp.jspWriter
- Podczas pracy z serwletem potrzebujemy obiektu printwriter
Przykład:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Niejawny Guru JSP1 <% int num1 = 10; int num2 = 20;out.println ("num1 to" + num1);out.println ("num2 to" + num2);%>
Wyjaśnienie kodu:
Linia kodu 11-12 - out jest używana do drukowania w strumieniu wyjściowym
Kiedy wykonujemy powyższy kod, otrzymujemy następujące dane wyjściowe:
Wynik:
- W wyniku otrzymujemy wartości num1 i num2
Żądanie
- Obiekt żądania jest instancją java.servlet.http.HttpServletRequest i jest jednym z argumentów metody usługi
- Zostanie utworzony przez kontener na każde żądanie.
- Będzie używany do żądania informacji, takich jak parametr, informacje o nagłówku, nazwa serwera itp.
- Używa getParameter (), aby uzyskać dostęp do parametru żądania.
Przykład:
Implicit_jsp2.jsp (formularz, z którego żądanie jest wysyłane do guru.jsp)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Niejawny formularz Guru JSP2
Guru.jsp (gdzie podejmowane jest działanie)
Wyjaśnienie kodu:
Linia kodu 10-13: W implicit_jsp2.jsp (formularz) wysyłane jest żądanie, stąd zmienna nazwa użytkownika jest przetwarzana i wysyłana do guru.jsp, który jest akcją JSP.
Guru.jsp
Code Line10-11: Jest to akcja jsp, w której przetwarzane jest żądanie, a nazwa użytkownika jest pobierana z formularza jsp.
Po wykonaniu powyższego kodu otrzymasz następujące dane wyjściowe
Wynik:
Po napisaniu testu i kliknięciu przycisku przesyłania otrzymasz następujący wynik „Test powitalny”.
Odpowiedź
- „Response” to instancja klasy, która implementuje interfejs HttpServletResponse
- Container generuje ten obiekt i przekazuje do metody _jspservice () jako parametr
- „Obiekt odpowiedzi” zostanie utworzony przez kontener dla każdego żądania.
- Reprezentuje odpowiedź, jakiej można udzielić klientowi
- Obiekt niejawny odpowiedzi służy do określania typu zawartości, dodawania pliku cookie i przekierowania do strony odpowiedzi
Przykład:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Niejawny Guru JSP4 <% response.setContentType ("text / html"); %>
Wyjaśnienie kodu:
Linia kodu 11: W obiekcie odpowiedzi możemy ustawić typ treści
Tutaj ustawiamy tylko typ zawartości w obiekcie odpowiedzi. W związku z tym nie ma na to żadnego wyjścia.
Config
- „Konfiguracja” jest typu java.servlet.servletConfig
- Jest tworzony przez kontener dla każdej strony jsp
- Służy do pobierania parametru inicjalizacji w pliku web.xml
Przykład:
Web.xml (określa nazwę i mapowanie serwletu)
Implicit_jsp5.jsp (pobieranie wartości nazwy serwletu)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Niejawny Guru JSP5 <% String servletName = config.getServletName ();out.println ("Nazwa serwletu to" + nazwa_serwletu);%>
Wyjaśnienie kodu:
W pliku web.xml
Linia kodu 14-17: W web.xml mamy odwzorowanie serwletów na klasy.
Implicit_jsp5.jsp
Linia kodu 10-11: Aby uzyskać nazwę serwletu w JSP, możemy użyć config.getServletName, który pomoże nam uzyskać nazwę serwletu.
Po wykonaniu powyższego kodu otrzymasz następujące dane wyjściowe:
Wynik:
- Nazwa serwletu to „GuruServlet”, ponieważ jest ona obecna w pliku web.xml
Podanie
- Obiekt aplikacji (linia kodu 10) jest instancją javax.servlet.ServletContext i jest używany do pobierania informacji o kontekście i atrybutów w JSP.
- Obiekt aplikacji jest tworzony przez kontener, po jednym na aplikację, podczas wdrażania aplikacji.
- Obiekt Servletcontext zawiera zestaw metod służących do interakcji z kontenerem serwletów.
Przykład:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Guru Implicit JSP6 <% application.getContextPath (); %>
Wyjaśnienie kodu:
- W powyższym kodzie atrybut aplikacji pomaga uzyskać ścieżkę kontekstu strony JSP.
Sesja
- Sesja zawiera obiekt „httpsession” (wiersz kodu 10).
- Obiekt sesji służy do pobierania, ustawiania i usuwania atrybutów z zakresu sesji, a także służy do pobierania informacji o sesji
Przykład:
Implicit_jsp7 (atrybut jest ustawiony)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Niejawna strona JSP <% session.setAttribute ("użytkownik", "GuruJSP"); %> Kliknij tutaj, aby uzyskać nazwę użytkownika
Implicit_jsp8.jsp (getAttribute)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>niejawny Guru JSP8 <% String name = (String) session.getAttribute ("użytkownik");out.println ("Nazwa użytkownika to" + nazwa);%>
Wyjaśnienie kodu:
Implicit_jsp7.jsp
Linia kodu 11: ustawiamy atrybut użytkownika w zmiennej sesji, a wartość tę można pobrać z sesji w dowolnym pliku jsp wywołanym z tego (_jsp8.jsp).
Linia kodu 12: Wywołujemy kolejny jsp na href, w którym otrzymamy wartość atrybutu user, który jest ustawiony.
Implicit_jsp8.jsp
Linia kodu 11: Pobieramy wartość atrybutu użytkownika z obiektu sesji i wyświetlamy tę wartość
Po wykonaniu powyższego kodu otrzymasz następujące dane wyjściowe:
Po kliknięciu łącza do nazwy użytkownika. Otrzymasz następujący wynik.
Wynik:
- Po kliknięciu na link podany w implicit_jsp7.jsp zostajemy przekierowani na drugą stronę jsp, czyli stronę (_jsp8.jsp) i pobieramy wartość atrybutu użytkownika (_jsp7.jsp) z obiektu sesji.
pageContext:
- Ten obiekt jest typu pagecontext.
- Służy do pobierania, ustawiania i usuwania atrybutów z określonego zakresu
Zakresy są 4 rodzaje:
- Strona
- Żądanie
- Sesja
- Podanie
Przykład:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Niejawny Guru JSP9 <% pageContext.setAttribute ("student", "gurustudent", pageContext.PAGE_SCOPE);String name = (String) pageContext.getAttribute ("student");out.println ("imię ucznia to" + imię);%>
Wyjaśnienie kodu:
Linia kodu 11: ustawiamy atrybut za pomocą obiektu pageContext i ma on trzy parametry:
- Klucz
- Wartość
- Zakres
W powyższym kodzie klucz to student, a wartość to „gurustudent”, podczas gdy zakres to zakres strony. Tutaj zasięg to „strona” i można go uzyskać tylko przy użyciu zakresu strony.
Linia kodu 12: Pobieramy wartość atrybutu za pomocą pageContext
Po wykonaniu powyższego kodu otrzymasz następujące dane wyjściowe:
Wynik:
- Wynik wyświetli "imię ucznia jest gurustudent".
Strona
- Zmienna niejawna strony przechowuje aktualnie wykonywany obiekt serwletu dla odpowiedniego pliku jsp.
- Działa jak ten obiekt dla bieżącej strony jsp.
Przykład:
W tym przykładzie używamy obiektu strony do pobrania nazwy strony za pomocą metody toString
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Niejawny Guru JSP10 <% String pageName = page.toString ();out.println ("Nazwa strony to" + nazwa_strony);%>
Wyjaśnienie kodu:
Linia kodu 10-11: W tym przykładzie próbujemy użyć metody toString () obiektu strony i próbujemy uzyskać nazwę ciągu strony JSP.
Po wykonaniu kodu otrzymasz następujące dane wyjściowe:
Wynik:
- Dane wyjściowe to nazwa ciągu z powyższej strony jsp
Wyjątek
- Wyjątek to niejawny obiekt klasy rzucającej.
- Służy do obsługi wyjątków w JSP.
- Obiekt wyjątku może być używany tylko na stronach błędów.
Przykład:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1" isErrorPage = "true"%>Niejawny Guru JSP 11 <% int [] num1 = {1, 2, 3, 4};out.println (num1 [5]);%><% = wyjątek%>
Wyjaśnienie kodu:
Linia kodu 10-12 - ma tablicę liczb, tj. Num1 z czterema elementami. Na wyjściu próbujemy wydrukować piąty element tablicy z num1, który nie jest zadeklarowany na liście tablic. Jest więc używany do pobierania obiektu wyjątku pliku jsp.
Wynik:
Otrzymujemy ArrayIndexOfBoundsException w tablicy, w której otrzymujemy tablicę num1 piątego elementu.