Implicitní objekty JSP: Kompletní výukový program

Obsah:

Anonim

Co je to implicitní objekt JSP?

  • Implicitní objekty JSP jsou vytvářeny během fáze překladu JSP na servlet.
  • Tyto objekty lze přímo použít v scripletech, které jsou součástí metody služby.
  • Jsou vytvářeny kontejnerem automaticky a lze k nim přistupovat pomocí objektů.

Kolik implicitních objektů je k dispozici v JSP?

V kontejneru je k dispozici 9 typů implicitních objektů:

  1. ven
  2. žádost
  3. Odezva
  4. konfigurace
  5. aplikace
  6. zasedání
  7. pageContext
  8. strana
  9. výjimka

Pojďme studovat jeden po druhém

ven

  • Out je jeden z implicitních objektů k zápisu dat do vyrovnávací paměti a odeslání výstupu klientovi jako odpověď
  • Objekt Out nám umožňuje přístup k výstupnímu proudu servletu
  • Out je objektem třídy javax.servlet.jsp.jspWriter
  • Při práci se servletem potřebujeme objekt printwriter

Příklad:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicitní Guru JSP1 <% int num1 = 10; int num2 = 20;out.println ("num1 je" + num1);out.println ("num2 je" + num2);%>

Vysvětlení kódu:

Řádek kódu 11-12 - out se používá k tisku do výstupního proudu

Když provedeme výše uvedený kód, získáme následující výstup:

Výstup:

  • Na výstupu dostaneme hodnoty num1 a num2

Žádost

  • Objekt požadavku je instancí java.servlet.http.HttpServletRequest a je jedním z argumentů metody služby
  • Bude vytvořen kontejnerem pro každý požadavek.
  • Bude použita k vyžádání informací, jako je parametr, informace o záhlaví, název serveru atd.
  • K přístupu k parametru požadavku používá getParameter ().

Příklad:

Implicit_jsp2.jsp (formulář, ze kterého je odeslán požadavek na guru.jsp)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicitní Guru formulář JSP2 

Guru.jsp (kde je akce přijata)

Vysvětlení kódu:

Řádek kódu 10-13: V implicit_jsp2.jsp (formulář) je odeslán požadavek, proto je proměnná uživatelské jméno zpracována a odeslána na guru.jsp, což je akce JSP.

Guru.jsp

Kód Line10-11: Jedná se o akci jsp, kde je zpracován požadavek a uživatelské jméno je převzato z formuláře jsp.

Když spustíte výše uvedený kód, získáte následující výstup

Výstup:

Když napíšete test a kliknete na tlačítko Odeslat, dostanete následující výstup „Uvítací test“.

Odezva

  • „Odpověď“ je instance třídy, která implementuje rozhraní HttpServletResponse
  • Kontejner generuje tento objekt a předává metodě _jspservice () jako parametr
  • "Objekt odpovědi" bude vytvořen kontejnerem pro každý požadavek.
  • Představuje odpověď, kterou lze dát klientovi
  • Implicitní objekt odpovědi se používá k typu obsahu, přidání souboru cookie a přesměrování na stránku odpovědi

Příklad:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicitní Guru JSP4 <% response.setContentType ("text / html"); %>

Vysvětlení kódu:

Řádek kódu 11: V objektu odpovědi můžeme nastavit typ obsahu

Zde nastavujeme pouze typ obsahu v objektu odpovědi. Z tohoto důvodu neexistuje žádný výstup.

Konfigurace

  • "Konfigurace" je typu java.servlet.servletConfig
  • Je vytvořen kontejnerem pro každou stránku jsp
  • Používá se k získání inicializačního parametru v souboru web.xml

Příklad:

Web.xml (určuje název a mapování servletu)

Implicit_jsp5.jsp (získání hodnoty názvu servletu)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicitní Guru JSP5 <% String servletName = config.getServletName ();out.println ("Název servletu je" + název servletu);%>

Vysvětlení kódu:

V souboru web.xml

Řádek kódu 14-17: V souboru web.xml máme mapování servletů do tříd.

Implicit_jsp5.jsp

Řádek kódu 10-11: K získání názvu servletu v JSP můžeme použít config.getServletName, který nám pomůže získat název servletu.

Když spustíte výše uvedený kód, získáte následující výstup:

Výstup:

  • Název servletu je „GuruServlet“, protože je uveden v souboru web.xml

aplikace

  • Objekt aplikace (řádek kódu 10) je instancí javax.servlet.ServletContext a slouží k získání kontextových informací a atributů v JSP.
  • Když je aplikace nasazena, vytvoří se objekt aplikace kontejnerem jeden na aplikaci.
  • Objekt Servletcontext obsahuje sadu metod, které se používají k interakci s kontejnerem servletu. Najdeme informace o kontejneru servletu

Příklad:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru Implicit JSP6 <% application.getContextPath (); %>

Vysvětlení kódu:

  • Ve výše uvedeném kódu pomáhá atribut aplikace získat kontextovou cestu stránky JSP.

Zasedání

  • Relace drží objekt „httpsession“ (řádek kódu 10).
  • Objekt relace se používá k získání, nastavení a odebrání atributů rozsahu relace a také k získání informací o relaci

Příklad:

Implicit_jsp7 (atribut je nastaven)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicitní JSP <% session.setAttribute ("uživatel", "GuruJSP"); %> Kliknutím sem zobrazíte uživatelské jméno 

Implicit_jsp8.jsp (getAttribute)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> implicitní Guru JSP8 <% String name = (String) session.getAttribute ("user");out.println ("Uživatelské jméno je" + jméno);%>

Vysvětlení kódu:

Implicit_jsp7.jsp

Řádek kódu 11: nastavujeme uživatele atributu v proměnné relace a tuto hodnotu lze načíst z relace, podle toho, z čeho se volá jsp (_jsp8.jsp).

Řádek kódu 12: Voláme další jsp na href, ve kterém dostaneme nastavenou hodnotu pro atribut user.

Implicit_jsp8.jsp

Řádek kódu 11: Získáváme hodnotu atributu uživatele z objektu relace a tuto hodnotu zobrazujeme

Když spustíte výše uvedený kód, získáte následující výstup:

Když kliknete na odkaz pro uživatelské jméno. Získáte následující výstup.

Výstup:

  • Když klikneme na odkaz uvedený v implicit_jsp7.jsp, jsme přesměrováni na druhou stránku jsp, tj. Stránku (_jsp8.jsp) a dostaneme hodnotu z relace objektu atributu uživatele (_jsp7.jsp).

pageContext:

  • Tento objekt je typu pagecontext.
  • Používá se k získání, nastavení a odebrání atributů z konkrétního oboru

Rozsahy jsou 4 typů:

  • Strana
  • Žádost
  • Zasedání
  • aplikace

Příklad:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicitní Guru JSP9 <% pageContext.setAttribute ("student", "gurustudent", pageContext.PAGE_SCOPE);Název řetězce = (řetězec) pageContext.getAttribute ("student");out.println ("jméno studenta je" + jméno);%>

Vysvětlení kódu:

Řádek kódu 11: nastavujeme atribut pomocí objektu pageContext a má tři parametry:

  • Klíč
  • Hodnota
  • Rozsah

Ve výše uvedeném kódu je klíčem student a hodnota je „gurustudent“, zatímco rozsah je rozsah stránky. Zde je obor „stránka“ a lze jej použít pouze pro rozsah stránek.

Řádek kódu 12: Hodnotu atributu získáváme pomocí pageContext

Když spustíte výše uvedený kód, získáte následující výstup:

Výstup:

  • Na výstupu se vytiskne „student name is gurustudent“.

Strana

  • Implicitní proměnná stránky obsahuje aktuálně spuštěný objekt servletu pro odpovídající jsp.
  • Působí jako tento objekt pro aktuální stránku jsp.

Příklad:

V tomto příkladu používáme objekt stránky k získání názvu stránky pomocí metody toString

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicitní Guru JSP10 <% String pageName = page.toString ();out.println ("Název stránky je" + název stránky);%>

Vysvětlení kódu:

Řádek kódu 10-11: V tomto příkladu se pokoušíme použít metodu toString () objektu stránky a pokusíme se získat název řetězce stránky JSP.

Po spuštění kódu získáte následující výstup:

Výstup:

  • Výstupem je název řetězce výše uvedené stránky jsp

Výjimka

  • Výjimkou je implicitní objekt hoditelné třídy.
  • Používá se pro zpracování výjimek v JSP.
  • Objekt výjimky lze použít pouze na chybových stránkách.

    Příklad:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1" isErrorPage = "true"%> Implicitní Guru JSP 11 <% int [] počet1 = {1,2,3,4};out.println (num1 [5]);%><% = výjimka%>

Vysvětlení kódu:

Řádek kódu 10-12 - Má řadu čísel, tj. Num1 se čtyřmi prvky. Na výstupu se snažíme vytisknout pátý prvek pole z num1, který není deklarován v seznamu polí. Používá se tedy k získání objektu výjimky jsp.

Výstup:

Získáváme ArrayIndexOfBoundsException v poli, kde získáváme pole num1 pátého prvku.