Implizite JSP-Objekte

Was ist ein implizites JSP-Objekt?

  • Implizite JSP-Objekte werden wรคhrend der รœbersetzungsphase von JSP zum Servlet erstellt.
  • Diese Objekte kรถnnen direkt in Scriptlets verwendet werden, die in die Service-Methode eingehen.
  • Sie werden vom Container automatisch erstellt und kรถnnen รผber Objekte aufgerufen werden.

Wie viele implizite Objekte sind in JSP verfรผgbar?

Im Container stehen 9 Arten impliziter Objekte zur Verfรผgung:

  1. AuรŸen
  2. PREISANFRAGE (Request)
  3. Antwort
  4. Config
  5. Anwendung
  6. Session
  7. Seitenkontext
  8. Seite
  9. Exception

Lasst uns einzeln lernen

1) Aus

  • Out ist eines der impliziten Objekte, um die Daten in den Puffer zu schreiben und als Antwort die Ausgabe an den Client zu senden.
  • Out-Objekt ermรถglicht uns den Zugriff auf den Ausgabestream des Servlets
  • Out ist ein Objekt der Klasse javax.servlet.jsp.jspWriter
  • Wรคhrend der Arbeit mit Servlet, wir brauchen ein Printwriter-Objekt

Ejemplo:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Implicit Guru JSP1</title>
</head>
<body>
<% int num1=10;int num2=20;
out.println("num1 is " +num1);
out.println("num2 is "+num2);
%>
</body>
</html>

Erklรคrung des Codes:

Code Zeile 11-12โ€“ out wird zum Drucken in den Ausgabestream verwendet

Wenn wir den obigen Code ausfรผhren, erhalten wir die folgende Ausgabe:

DrauรŸen in JSP

Ausgang:

  • In der Ausgabe erhalten wir die Werte von num1 und num2

2) Anfrage

  • Das Anforderungsobjekt ist eine Instanz von java.servlet.http.HttpServletRequest und eines der Argumente der Service-Methode
  • Es wird pro Container fรผr jede Anfrage erstellt.
  • Es wird verwendet, um Informationen wie Parameter, Header-Informationen, Servernamen usw. anzufordern.
  • Es verwendet getParameter(), um auf den Anforderungsparameter zuzugreifen.

Ejemplo:

Implicit_jsp2.jsp (Formular, von dem aus die Anfrage an guru.jsp gesendet wird)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Implicit Guru form JSP2</title>
</head>
<body>
<form action="guru.jsp">
<input type="text" name="username">
<input type="submit" value="submit">
</form>
</body>
</html>

Guru.jsp (wo die Aktion ausgefรผhrt wird)

Anfrage in JSP

Erklรคrung des Codes:

Code Zeile 10-13: In implicit_jsp2.jsp(form) wird eine Anfrage gesendet, daher wird die Variable Benutzername verarbeitet und an guru.jsp gesendet, was eine Aktion von JSP ist.

Guru.jsp

Code Zeile 10-11: Es ist die Aktions-JSP, in der die Anfrage verarbeitet wird und der Benutzername aus der JSP-Form รผbernommen wird.

Wenn Sie den obigen Code ausfรผhren, erhalten Sie die folgende Ausgabe

Ausgang:

Anfrage in JSP

Wenn Sie โ€žTestโ€œ schreiben und auf die Schaltflรคche โ€žSendenโ€œ klicken, erhalten Sie die folgende Ausgabe: โ€žWillkommen Test.โ€œ

Anfrage in JSP

3) Antwort

  • โ€žResponseโ€œ ist eine Instanz der Klasse, die die HttpServletResponse-Schnittstelle implementiert
  • Der Container generiert dieses Objekt und รผbergibt es als Parameter an die Methode _jspservice()
  • Fรผr jede Anfrage wird vom Container ein โ€žAntwortobjektโ€œ erstellt.
  • Es stellt die Antwort dar, die dem Kunden gegeben werden kann
  • Das implizite Antwortobjekt wird zum Typieren von Inhalten, zum Hinzufรผgen von Cookies und zum Weiterleiten zur Antwortseite verwendet

Ejemplo:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Implicit Guru JSP4</title>
</head>
<body>
<%response.setContentType("text/html"); %>
</body>
</html>

Erklรคrung des Codes:

Code Linie 11: Im Antwortobjekt kรถnnen wir den Inhaltstyp festlegen

Hier legen wir nur den Inhaltstyp im Antwortobjekt fest. Daher gibt es hierfรผr keine Ausgabe.

4) Konfiguration

  • โ€žConfigโ€œ ist vom Typ java.servlet.servletConfig
  • Es wird vom Container fรผr jede JSP-Seite erstellt
  • Es wird verwendet, um den Initialisierungsparameter in web.xml abzurufen

Ejemplo:

Web.xml (gibt den Namen und die Zuordnung an)ping des Servlets)

Konfiguration in JSP

Implicit_jsp5.jsp (Wert des Servlet-Namens abrufen)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Implicit Guru JSP5</title>
</head>
<body>
<% String servletName = config.getServletName();
out.println("Servlet Name is " +servletName);%>
</body>
</html>

Erklรคrung des Codes:

In web.xml

Code Zeile 14-17: In der web.xml-Datei haben wir eine Karteping von Servlets zu den Klassen.

Implicit_jsp5.jsp

Code Zeile 10-11: Um den Namen des Servlets in JSP zu erhalten, kรถnnen wir config.getServletName verwenden, was uns dabei hilft, den Namen des Servlets zu ermitteln.

Wenn Sie den obigen Code ausfรผhren, erhalten Sie die folgende Ausgabe:

Antwort in JSP

Ausgang:

  • Der Servlet-Name ist โ€žGuruServletโ€œ, da der Name in web.xml vorhanden ist

5) Anwendung

  • Das Anwendungsobjekt (Codezeile 10) ist eine Instanz von javax.servlet.ServletContext und wird verwendet, um die Kontextinformationen und Attribute in JSP abzurufen.
  • Das Anwendungsobjekt wird vom Container einzeln pro Anwendung erstellt, wenn die Anwendung bereitgestellt wird.
  • Das Servletcontext-Objekt enthรคlt eine Reihe von Methoden, die zur Interaktion mit dem Servlet-Container verwendet werden. Wir kรถnnen Informationen รผber den Servlet-Container finden

Ejemplo:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Implicit JSP6</title>
</head>
<body>
<% application.getContextPath(); %>
</body>
</html>

Erklรคrung des Codes:

  • Im obigen Code hilft das Anwendungsattribut dabei, den Kontextpfad der JSP-Seite abzurufen.

6) Sitzung

  • Die Sitzung enthรคlt das Objekt โ€žhttpsessionโ€œ (Codezeile 10).
  • Das Sitzungsobjekt wird zum Abrufen, Festlegen und Entfernen von Attributen fรผr den Sitzungsbereich sowie zum Abrufen von Sitzungsinformationen verwendet

Ejemplo:

Implicit_jsp7 (Attribut ist gesetzt)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Implicit JSP</title>
</head>
<body>
<% session.setAttribute("user","GuruJSP"); %>
<a href="implicit_jsp8.jsp">Click here to get user name</a>
</body>
</html>

Implicit_jsp8.jsp (getAttribute)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>implicit Guru JSP8</title>
</head>
<body>
<% String name = (String)session.getAttribute("user");
out.println("User Name is " +name);
%>
</body>
</html>

Erklรคrung des Codes:

Implicit_jsp7.jsp

Code Linie 11: Wir legen das Attribut user in der Sitzungsvariablen fest, und dieser Wert kann aus der Sitzung abgerufen werden, je nachdem, welcher JSP von dort aufgerufen wird (_jsp8.jsp).

Code Linie 12: Wir rufen ein weiteres JSP auf href auf, in dem wir den Wert fรผr das festgelegte Attribut โ€žBenutzerโ€œ erhalten.

Implicit_jsp8.jsp

Code Linie 11: Wir erhalten den Wert des Benutzerattributs vom Sitzungsobjekt und zeigen diesen Wert an

Wenn Sie den obigen Code ausfรผhren, erhalten Sie die folgende Ausgabe:

Sitzung in JSP

Wenn Sie auf den Link fรผr den Benutzernamen klicken, erhalten Sie die folgende Ausgabe.

Sitzung in JSP

Ausgang:

  • Wenn wir auf den in implicit_jsp7.jsp angegebenen Link klicken, werden wir zur zweiten JSP-Seite, dh zur Seite (_jsp8.jsp), weitergeleitet und erhalten den Wert vom Sitzungsobjekt des Benutzerattributs (_jsp7.jsp).

7) Seitenkontext

  • Dieses Objekt ist vom Typ Seitenkontext.
  • Es wird verwendet, um die Attribute eines bestimmten Bereichs abzurufen, festzulegen und zu entfernen

Es gibt 4 Arten von Zielfernrohren:

  • Seite
  • PREISANFRAGE (Request)
  • Session
  • Anwendung

Ejemplo:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Implicit Guru JSP9</title>
</head>
<body>
<% pageContext.setAttribute("student","gurustudent",pageContext.PAGE_SCOPE);
String name = (String)pageContext.getAttribute("student");
out.println("student name is " +name);
%>
</body>
</html>

Erklรคrung des Codes:

Code Linie 11: Wir legen das Attribut mithilfe des pageContext-Objekts fest und es hat drei Parameter:

  • Wesentliche
  • Wert
  • Geltungsbereich

Im obigen Code ist der Schlรผssel โ€žstudentโ€œ und der Wert โ€žgurustudentโ€œ, wรคhrend der Bereich der Seitenbereich ist. Hier ist der Bereich โ€žSeiteโ€œ und kann nur รผber den Seitenbereich abgerufen werden.

Code Linie 12: Wir erhalten den Wert des Attributs mithilfe von pageContext

Wenn Sie den obigen Code ausfรผhren, erhalten Sie die folgende Ausgabe:

PageContext in JSP

Ausgang:

  • Die Ausgabe lautet โ€žSchรผlername ist gurustudentโ€œ.

8) Seite

  • Die implizite Variable โ€žSeiteโ€œ enthรคlt das aktuell ausgefรผhrte Servlet-Objekt fรผr die entsprechende JSP.
  • Fungiert als dieses Objekt fรผr die aktuelle JSP-Seite.

Ejemplo:

In diesem Beispiel verwenden wir das Seitenobjekt, um den Seitennamen mithilfe der toString-Methode abzurufen

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Implicit Guru JSP10</title>
</head>
<body>
<% String pageName = page.toString();
out.println("Page Name is " +pageName);%>
</body>
</html>

Erklรคrung des Codes:

Code Zeile 10-11: In diesem Beispiel versuchen wir, die Methode toString() des Seitenobjekts zu verwenden und den Stringnamen der JSP-Seite abzurufen.

Wenn Sie den Code ausfรผhren, erhalten Sie die folgende Ausgabe:

Seite in JSP

Ausgang:

  • Die Ausgabe ist der Stringname der oben genannten JSP-Seite

9) Ausnahme

  • Ausnahme ist das implizite Objekt der auswerfbaren Klasse.
  • Es wird genutzt fรผr Ausnahmebehandlung in JSP.
  • Das Ausnahmeobjekt kann nur in Fehlerseiten verwendet werden.Ejemplo:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" isErrorPage="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Implicit Guru JSP 11</title>
</head>
<body>
<%int[] num1={1,2,3,4};
out.println(num1[5]);%>
<%= exception %>
</body>
</html>

Erklรคrung des Codes:

Code Zeile 10-12 โ€“ Es hat ein Zahlenarray, also num1 mit vier Elementen. In der Ausgabe versuchen wir, das fรผnfte Element des Arrays von num1 auszudrucken, das nicht in der Arrayliste deklariert ist. Es wird also verwendet, um das Ausnahmeobjekt des JSP zu erhalten.

Ausgang:

Ausnahme in JSP

Wir erhalten ArrayIndexOfBoundsException im Array, wo wir ein num1-Array des fรผnften Elements erhalten.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: