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:
- Auรen
- PREISANFRAGE (Request)
- Antwort
- Config
- Anwendung
- Session
- Seitenkontext
- Seite
- 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:
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)
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:
Wenn Sie โTestโ schreiben und auf die Schaltflรคche โSendenโ klicken, erhalten Sie die folgende Ausgabe: โWillkommen Test.โ
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)
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:
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:
Wenn Sie auf den Link fรผr den Benutzernamen klicken, erhalten Sie die folgende Ausgabe.
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:
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:
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:
Wir erhalten ArrayIndexOfBoundsException im Array, wo wir ein num1-Array des fรผnften Elements erhalten.











