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. Anwendungsbereiche
  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:

Codezeile 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:

Codezeile 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

Codezeile 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:

Codezeile 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 des Servlets an)

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

Codezeile 14-17: In web.xml haben wir eine Zuordnung von Servlets zu den Klassen.

Implicit_jsp5.jsp

Codezeile 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

Codezeile 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).

Codezeile 12: Wir rufen ein weiteres JSP auf href auf, in dem wir den Wert für das festgelegte Attribut „Benutzer“ erhalten.

Implicit_jsp8.jsp

Codezeile 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
  • Anwendungsbereiche

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:

Codezeile 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.

Codezeile 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:

Codezeile 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:

Codezeile 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.