Inhaltsverzeichnis
1. JSP-Funktionsprinzip
2. Lernen Sie die neun integrierten Objekte kennen
3. Anweisungen zur Verwendung integrierter Objekte
3.1. Seitenobjekt
3.7、PageContext引入和跳转到其他资源
Heim Java javaLernprogramm Integrierte JSP-Objekte: Verwendung von pageContext-Bereichsobjekten

Integrierte JSP-Objekte: Verwendung von pageContext-Bereichsobjekten

Aug 08, 2018 pm 04:10 PM
java

Was sind die integrierten Objekte von JSP? Welche Funktionen haben sie? In diesem Artikel werden die neun integrierten Objekte von JSP erwähnt, einschließlich einer detaillierten Einführung in das pageContext-Objekt. Es stellt die laufende Umgebung der JSP-Seite dar Es kapselt nicht nur die Referenzen auf die anderen acht impliziten Objekte, sondern ist auch selbst ein Domänenobjekt (Container), das zum Speichern von Daten verwendet werden kann. Andere Objekte können auch über pageContext abgerufen werden. Die spezifische Verwendung wird unten erläutert.

1. JSP-Funktionsprinzip

Wenn auf jede JSP-Seite zum ersten Mal zugegriffen wird, übergibt der WEB-Container die Anfrage an die JSP Engine (d. h. ein Java-Programm) zur Verarbeitung. Die JSP-Engine übersetzt die JSP zunächst in ein _jspServlet (im Wesentlichen ein Servlet) und ruft es dann entsprechend der Servlet-Aufrufmethode auf.
Da JSP beim ersten Zugriff in ein Servlet übersetzt wird, ist der erste Zugriff normalerweise langsamer. Wenn die JSP-Engine beim zweiten Zugriff jedoch feststellt, dass sich die JSP nicht geändert hat, übersetzt sie sie nicht mehr. Rufen Sie es jedoch direkt auf, sodass die Ausführungseffizienz des Programms nicht beeinträchtigt wird.
Wenn die JSP-Engine das der JSP entsprechende _jspServlet aufruft, übergibt oder erstellt sie 9 Objekte im Zusammenhang mit der Webentwicklung, die _jspServlet verwenden kann. Um Entwicklern das Erhalten von Verweisen auf diese Webobjekte beim Schreiben von JSP-Seiten zu erleichtern, haben die Designer der JSP-Technologie speziell 9 entsprechende Variablen definiert. Entwickler können über diese Variablen schnell Verweise auf diese 9 Objekte in JSP-Seiten erhalten.

2. Lernen Sie die neun integrierten Objekte kennen

tr> tr>6java.lang.Object
NEIN. Eingebautes Objekt Typ
1
NO. 内置对象 类型
1 pageContext javax.servlet.jsp.PageContext
2 request javax.servlet.http.HttpServletRequest
3 response javax.servlet.http.HttpServletResponse
4 session javax.servlet.http.HttpSession
5 application javax.servlet.ServletContext
6 config javax.servlet.ServletConfig
7 out javax.servlet.jsp.JspWriter
8 page java.lang.Object
9 exception java.lang.Throwable
pageContext
javax.servlet.jsp.PageContext
2 request javax.servlet.http.HttpServletRequest
3 Antwort javax.servlet.http.HttpServletResponse td>
4 Sitzung javax.servlet.http.HttpSession
5 Anwendung javax.servlet.ServletContext
config javax.servlet.ServletConfig
7 out javax.servlet.jsp.JspWriter
8 Seite
9 Ausnahme java.lang.Throwable td>

 

Objekte wie Anfrage, Antwort, Sitzung, Anwendung und Konfiguration wurden bereits ausführlich vorgestellt. Hier konzentrieren wir uns auf die verbleibenden pageContext-Objekte, Out-Objekte und Seitenobjekte.

3. Anweisungen zur Verwendung integrierter Objekte

3.1. Seitenobjekt

Seitenobjekt stellt das aktuelle JSP Seite kann als Objekt selbst verstanden werden, das heißt: Behandeln Sie eine JSP als Objekt. Das Seitenobjekt wird in der Entwicklung selten verwendet. Verstehen Sie es einfach

3.2, Out-Objekt

Das Out-Objekt wird zum Senden von Textdaten an den Client verwendet.

Das Out-Objekt wird durch Aufrufen der getOut-Methode des pageContext-Objekts zurückgegeben. Seine Funktion und Verwendung sind dem von der ServletResponse.getWriter-Methode zurückgegebenen PrintWriter-Objekt sehr ähnlich.
Der Typ des Out-Objekts in der JSP-Seite ist JspWriter und entspricht einem PrintWriter mit Caching-Funktion. Durch Festlegen des Pufferattributs der Seitenanweisung der JSP-Seite kann der Cache angepasst oder sogar geschlossen werden.
Nur wenn Inhalt in das Out-Objekt geschrieben wird und eine der folgenden Bedingungen erfüllt ist, ruft das Out-Objekt die Methode ServletResponse.getWriter auf und der Inhalt im Puffer des Out-Objekts wird tatsächlich über das PrintWriter-Objekt geschrieben von dieser Methode zurückgegeben. Geben Sie den von der Servlet-Engine bereitgestellten Puffer ein:

  • Legen Sie das Pufferattribut der Seitenanweisung fest, um die Caching-Funktion des Out-Objekts zu deaktivieren

  • Out-Objekt Der Puffer ist voll

  • Die gesamte JSP-Seite endet

Out-Objekt-Funktionsprinzipdiagramm

 

Integrierte JSP-Objekte: Verwendung von pageContext-Bereichsobjekten

3.3. pageContext-Objekt

Das pageContext-Objekt ist das wichtigste Objekt in der JSP-Technologie. Es repräsentiert die laufende Umgebung der JSP-Seite die anderen acht impliziten Objekte, aber auch sich selbst. Es ist auch ein Domänenobjekt (Container), das zum Speichern von Daten verwendet werden kann. Darüber hinaus kapselt dieses Objekt auch einige allgemeine Vorgänge, die häufig bei der Webentwicklung auftreten, wie z. B. das Einführen und Springen zu anderen Ressourcen, das Abrufen von Attributen in anderen Domänenobjekten usw.

3.4. Erhalten Sie andere Objekte über pageContext

  • getException-Methode gibt implizites Ausnahmeobjekt zurück

  • getPage-Methode gibt implizites Seitenobjekt zurück

  • getRequest-Methode gibt implizites Anforderungsobjekt zurück

  • getResponse-Methode gibt implizites Antwortobjekt zurück

  • getServletConfig-Methode gibt zurück config implizites Objekt

  • getServletContext-Methode gibt implizites Anwendungsobjekt zurück

  • getSession-Methode gibt implizites Sitzungsobjekt zurück

  • Die getOut-Methode gibt das implizite Out-Objekt zurück

3.5. Die Bedeutung von pageContext, der andere 8 integrierte Objekte kapselt

Wenn während des Programmiervorgangs, übergeben Sie das pageContext-Objekt Zu einem gewöhnlichen Java-Objekt kann dieses Java-Objekt dann 8 implizite Objekte abrufen. Zu diesem Zeitpunkt kann dieses Java-Objekt mit dem Browser interagieren und dieses Java-Objekt wird zu einer dynamischen Webressource. Dies ist die Bedeutung der Kapselung von pageContext Unter welchen Umständen muss pageContext an eine andere Java-Klasse übergeben werden? Entwicklung, Java-Code darf nicht auf der JSP-Seite erscheinen, dann sollten wir einen Weg finden, den Java-Code zu entfernen. Wir können ein benutzerdefiniertes Tag entwickeln, um den Java-Code zu entfernen Schreiben Sie auf der Seite zunächst eine Java-Klasse um das benutzerdefinierte Tag. Wenn die JSP-Engine das benutzerdefinierte Tag ausführt, wird beim Aufrufen der Java-Klasse das pageContext-Objekt übergeben Da das pageContext-Objekt Verweise auf die anderen acht impliziten Objekte kapselt, können die acht impliziten Objekte in der JSP-Seite (Anfrage, Antwort, Konfiguration, Anwendung, Ausnahme, Sitzung) in dieser Java-Klasse verwendet werden. Das PageContext-Objekt ist besonders wichtig bei der Entwicklung benutzerdefinierter JSP-Tags.

3.6. pageContext als Domänenobjekt

Das pageContext-Objekt kann als Container verwendet werden, sodass einige Daten im pageContext-Objekt gespeichert werden können.

Gemeinsame Methoden von pageContext-Objekten

       java.lang.Object findAttribute(java.lang.String name)
Nach dem Login kopieren

Mit dieser Methode können Sie Attribute in jeder Domäne finden Sehen Sie sich die Beschreibung dieser Methode in der API dieser Methode an:

Sucht nach dem benannten Attribut in Seite, Anfrage, Sitzung (falls gültig) und Anwendungsbereich(en) der Reihe nach und gibt den zugehörigen Wert oder null zurück.

  当要查找某个属性时,findAttribute方法按照查找顺序"page→request→session→application"在这四个对象中去查找,只要找到了就返回属性值,如果四个对象都没有找到要查找的属性,则返回一个null。

范例:使用pageContext的findAttribute方法查找属性值

 
 
 
 
     pageContext的findAttribute方法查找属性值
 
 
     
 
                                    
 pageContext.findAttribute方法查找到的属性值:
 pageContext对象的name1属性:
 request对象的name2属性:
 session对象的name3属性:
 application对象的name4属性:
 查找不存在的name5属性:
 
 使用EL表达式进行输出:
 pageContext对象的name1属性:${name1}
 request对象的name2属性:${name2}
 session对象的name3属性:${name3}
 application对象的name4属性:${name4}
 不存在的name5属性:${name5}
Nach dem Login kopieren

运行结果:

  EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、 session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。

pageContext对象中封装了访问其它域的方法

  java.lang.Object getAttribute(java.lang.String name,   setAttribute(java.lang.String name, java.lang.Object value,   removeAttribute(java.lang.String name, scope)
Nach dem Login kopieren

代表各个域的常量

    PageContext.PAGE_SCOPE
Nach dem Login kopieren

范例:pageContext访问其它域

 
 
 
 
     pageContext访问其它域
 
 
       
 
                      
 取出存放在session对象中的属性值:
 第一种做法:使用pageContext.getAttribute("attributeName",PageContext.SESSION_SCOPE);去取出session对象中值
 姓名:
 第二种做法:使用session.getAttribute("attributeName");去取出session对象中值
 姓名:  
Nach dem Login kopieren

3.7、PageContext引入和跳转到其他资源

  PageContext类中定义了一个forward方法(用来跳转页面)和两个include方法(用来引入页面)来分别简化和替代RequestDispatcher.forward方法和include方法。
  方法接收的资源如果以“/”开头, “/”代表当前web应用。

范例:使用pageContext的forward方法跳转到其他页面

 
 
 
 
     使用pageContext的forward方法跳转页面
Nach dem Login kopieren

运行结果如下:

1 pageContext.forward("/pageContextDemo05.jsp");
Nach dem Login kopieren

  这种写法是用来简化和替代pageContext.getRequest().getRequestDispatcher("/pageContextDemo05.jsp").forward(request, response);这种写法的。在实际开发中,使用pageContext.forward(relativeUrlPath)方法跳转页面用得不多,主要是因为要在Jsp页面中嵌套java代码,所以这种做法简单了解一下即可,在开发中,要想从一个Jsp页面采用服务器端跳转的方式跳转到另一个Jsp页面,那么一般会使用标签,标签用于把请求转发给另外一个资源。

范例:使用pageContext的include方法引入资源

 
 
 
     使用pageContext的include方法引入资源
Nach dem Login kopieren

运行结果:

   在实际开发中,使用pageContext的include方法引入页面这种做法也很少用,一般都使用jsp:include标签引入资源,因此这种做法了解一下即可。

相关推荐:

JSP的内部对象

js的内置对象详解

Das obige ist der detaillierte Inhalt vonIntegrierte JSP-Objekte: Verwendung von pageContext-Bereichsobjekten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Zeitstempel für Datum in Java Zeitstempel für Datum in Java Aug 30, 2024 pm 04:28 PM

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Java -Programm, um das Kapselvolumen zu finden Java -Programm, um das Kapselvolumen zu finden Feb 07, 2025 am 11:37 AM

Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

PHP vs. Python: Verständnis der Unterschiede PHP vs. Python: Verständnis der Unterschiede Apr 11, 2025 am 12:15 AM

PHP und Python haben jeweils ihre eigenen Vorteile, und die Wahl sollte auf Projektanforderungen beruhen. 1.PHP eignet sich für die Webentwicklung mit einfacher Syntax und hoher Ausführungseffizienz. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit präziser Syntax und reichhaltigen Bibliotheken.

PHP: Eine Schlüsselsprache für die Webentwicklung PHP: Eine Schlüsselsprache für die Webentwicklung Apr 13, 2025 am 12:08 AM

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7

Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Oct 13, 2024 pm 01:32 PM

Java ist eine beliebte Programmiersprache, die sowohl von Anfängern als auch von erfahrenen Entwicklern erlernt werden kann. Dieses Tutorial beginnt mit grundlegenden Konzepten und geht dann weiter zu fortgeschrittenen Themen. Nach der Installation des Java Development Kit können Sie das Programmieren üben, indem Sie ein einfaches „Hello, World!“-Programm erstellen. Nachdem Sie den Code verstanden haben, verwenden Sie die Eingabeaufforderung, um das Programm zu kompilieren und auszuführen. Auf der Konsole wird „Hello, World!“ ausgegeben. Mit dem Erlernen von Java beginnt Ihre Programmierreise, und wenn Sie Ihre Kenntnisse vertiefen, können Sie komplexere Anwendungen erstellen.

See all articles