Heim >Java >javaLernprogramm >Integrierte JSP-Objekte: Verwendung von pageContext-Bereichsobjekten
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.
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.
NEIN. | Eingebautes Objekt | Typ | ||||||||||||||||||||||||||||||
1 |
|
javax.servlet.jsp.PageContext | tr>||||||||||||||||||||||||||||||
2 | request | javax.servlet.http.HttpServletRequest | ||||||||||||||||||||||||||||||
3 | Antwort | javax.servlet.http.HttpServletResponse td> | ||||||||||||||||||||||||||||||
4 | Sitzung | javax.servlet.http.HttpSession | 5 | Anwendung | javax.servlet.ServletContext | tr>|||||||||||||||||||||||||||
config | javax.servlet.ServletConfig | 7 | out | javax.servlet.jsp.JspWriter | ||||||||||||||||||||||||||||
8 | Seite | java.lang.Object|||||||||||||||||||||||||||||||
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.
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:
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
java.lang.Object findAttribute(java.lang.String name)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}
运行结果:
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)
代表各个域的常量
PageContext.PAGE_SCOPE
范例:pageContext访问其它域
pageContext访问其它域 取出存放在session对象中的属性值: 第一种做法:使用pageContext.getAttribute("attributeName",PageContext.SESSION_SCOPE);去取出session对象中值 姓名: 第二种做法:使用session.getAttribute("attributeName");去取出session对象中值 姓名:
PageContext类中定义了一个forward方法(用来跳转页面)和两个include方法(用来引入页面)来分别简化和替代RequestDispatcher.forward方法和include方法。
方法接收的资源如果以“/”开头, “/”代表当前web应用。
范例:使用pageContext的forward方法跳转到其他页面
使用pageContext的forward方法跳转页面
运行结果如下:
1 pageContext.forward("/pageContextDemo05.jsp");
这种写法是用来简化和替代pageContext.getRequest().getRequestDispatcher("/pageContextDemo05.jsp").forward(request, response);这种写法的。在实际开发中,使用pageContext.forward(relativeUrlPath)方法跳转页面用得不多,主要是因为要在Jsp页面中嵌套java代码,所以这种做法简单了解一下即可,在开发中,要想从一个Jsp页面采用服务器端跳转的方式跳转到另一个Jsp页面,那么一般会使用
范例:使用pageContext的include方法引入资源
使用pageContext的include方法引入资源
运行结果:
在实际开发中,使用pageContext的include方法引入页面这种做法也很少用,一般都使用jsp:include标签引入资源,因此这种做法了解一下即可。
相关推荐:
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!