Niejawne obiekty JSP: kompletny samouczek

Spisie treści:

Anonim

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:

  1. na zewnątrz
  2. żądanie
  3. odpowiedź
  4. config
  5. podanie
  6. sesja
  7. pageContext
  8. strona
  9. 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.