JSP にはどのような組み込みオブジェクトがありますか?この記事では、pageContext オブジェクトの詳細を含め、JSP の 9 つの組み込みオブジェクトについて説明します。このオブジェクトは、JSP ページの実行環境を表します。カプセル化するだけではありません。他の 8 つの暗黙的オブジェクトへの参照に加えて、データを保存するために使用できるドメイン オブジェクト (コンテナー) 自体でもあります。他のオブジェクトも pageContext を通じて取得できます。具体的な使用法については以下で説明します。
1. JSP の動作原理
各 JSP ページに初めてアクセスすると、WEB コンテナはリクエストを JSP エンジン (つまり Java プログラム) に渡して処理します。 JSP エンジンは、まず JSP を _jspServlet (本質的にはサーブレット) に変換し、次にサーブレット呼び出しメソッドに従ってそれを呼び出します。
初めてアクセスするときに JSP はサーブレットに変換されるため、最初のアクセスは通常遅くなりますが、2 回目のアクセスでは、JSP エンジンが JSP が変更されていないと判断すると、変換されなくなります。ただし、直接呼び出すため、プログラムの実行効率には影響しません。
JSP エンジンは、JSP に対応する _jspServlet を呼び出すと、_jspServlet が使用する Web 開発に関連する 9 つのオブジェクトを渡すか、作成します。開発者が JSP ページを作成するときにこれらの Web オブジェクトへの参照を取得しやすくするために、JSP テクノロジの設計者は、これらの変数を通じて JSP ページ内のこれらの 9 つのオブジェクトへの参照を迅速に取得できる 9 つの対応する変数を特別に定義しました。
2. 9 つの組み込みオブジェクトを理解する
NO. | 組み込みオブジェクト | type |
1 | pageContext | javax.servlet .jsp.PageContext | HttpServletRequest ttpServletResponse
4 | セッションjavax.servlet.http.HttpSession | |
5 | アプリケーションjavax.servlet.ServletContext | |
6 | configjavax.servlet.ServletConfig | |
7out | javax.servlet.jsp.JspWriter | |
ページ | java.lang.Object | 9例外 |
オブジェクトのリクエスト、レスポンス、セッション、アプリケーション、および構成はすべて以前に作成されています。残りのページコンテキスト. オブジェクト、アウト オブジェクト、ページ オブジェクト。 3. 組み込みオブジェクトの使用手順 3.1. ページ オブジェクトページ オブジェクトは、オブジェクト自体として理解できます。つまり、JSP を扱います。 をオブジェクトとして扱います。 page オブジェクトは開発ではほとんど使用されません、理解しておいてください 3.2, out オブジェクト out オブジェクトはクライアントにテキストデータを送信するために使用されます。 out オブジェクトは、pageContext オブジェクトの getOut メソッドを呼び出すことによって返されます。その機能と使用法は、ServletResponse.getWriter メソッドによって返される PrintWriter オブジェクトと非常に似ています。 JSPページのoutオブジェクトの型はJspWriterです。JspWriterはキャッシュ機能を備えたPrintWriterと同等で、JSPページのページ命令のバッファ属性を設定することでキャッシュサイズを調整したり、キャッシュをオフにすることもできます。 コンテンツが out オブジェクトに書き込まれ、以下の条件のいずれかが満たされる場合にのみ、out オブジェクトは ServletResponse.getWriter メソッドを呼び出し、このメソッドによって返される PrintWriter オブジェクトを使用して、実際に out オブジェクトのバッファーにコンテンツを書き込みます。 to サーブレット エンジンによって提供されるバッファ内:
getException メソッドは例外暗黙的オブジェクトを返す
pageContextオブジェクトはコンテナとして使用できるため、一部のデータをpageContextオブジェクトに格納できます。pageContext オブジェクトの一般的に使用されるメソッド java.lang.Object findAttribute(java.lang.String name) findAttribute メソッドに注目してください。このメソッドの API を確認して、このメソッドの説明を確認してください。ページ、リクエスト、セッション (有効な場合)、アプリケーション スコープの名前付き属性を順番に取得し、関連付けられた値または null を返します。 当要查找某个属性时,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对象中值 姓名: 3.7、PageContext引入和跳转到其他资源 PageContext类中定义了一个forward方法(用来跳转页面)和两个include方法(用来引入页面)来分别简化和替代RequestDispatcher.forward方法和include方法。 范例:使用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标签引入资源,因此这种做法了解一下即可。 相关推荐: |
以上がjsp 組み込みオブジェクト: pageContext スコープ オブジェクトの使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

jvmmanagesgarbagecollectionacrossplatformseftivivivivitybyusagenerationalaphadadadaptingtosandhardwaredefferences.itemployscollectorslikeserial、parallel、cms、andg1、各sutitedfordifferentscenarios

Javaは、Javaの「Write and Averywherewhere」という哲学がJava Virtual Machine(JVM)によって実装されているため、変更なしで異なるオペレーティングシステムで実行できます。コンパイルされたJavaバイトコードとオペレーティングシステムの間の仲介者として、JVMはバイトコードを特定のマシン命令に変換し、JVMがインストールされた任意のプラットフォームでプログラムが独立して実行できることを確認します。

Javaプログラムの編集と実行は、BytecodeとJVMを通じてプラットフォームの独立性を達成します。 1)Javaソースコードを書き、それをbytecodeにコンパイルします。 2)JVMを使用して、任意のプラットフォームでByteCodeを実行して、コードがプラットフォーム間で実行されるようにします。

Javaのパフォーマンスはハードウェアアーキテクチャと密接に関連しており、この関係を理解することでプログラミング機能を大幅に改善できます。 1)JVMは、CPUアーキテクチャの影響を受けるJITコンピレーションを介して、Java Bytecodeを機械命令に変換します。 2)メモリ管理とゴミ収集は、RAMとメモリバスの速度の影響を受けます。 3)キャッシュとブランチ予測Javaコードの実行を最適化します。 4)マルチスレッドと並列処理がマルチコアシステムのパフォーマンスを改善します。

ネイティブライブラリを使用すると、これらのライブラリはオペレーティングシステムごとに個別にコンパイルする必要があるため、Javaのプラットフォームの独立性が破壊されます。 1)ネイティブライブラリはJNIを介してJavaと対話し、Javaが直接実装できない機能を提供します。 2)ネイティブライブラリを使用すると、プロジェクトの複雑さが増し、さまざまなプラットフォームのライブラリファイルの管理が必要です。 3)ネイティブライブラリはパフォーマンスを改善できますが、それらは注意して使用し、クロスプラットフォームテストを実施する必要があります。

JVMは、JavanativeInterface(JNI)およびJava Standard Libraryを介してオペレーティングシステムのAPIの違いを処理します。1。JNIでは、Javaコードがローカルコードを呼び出し、オペレーティングシステムAPIと直接対話できます。 2. Java Standard Libraryは統一されたAPIを提供します。これは、異なるオペレーティングシステムAPIに内部的にマッピングされ、コードがプラットフォーム間で実行されるようにします。

modularitydoesnotdirectlyectlyectjava'splatformindepensence.java'splatformendepenceismaindainededainededainededaindainedaindained bythejvm、butmodularityinfluencesApplucationStructure andmanagement、間接的なインパクチャプラット形成依存性.1)

bytecodeinjavaisthe intermediaterepresentationthateNablesplatformindepence.1)javacodeis compiledintobytecodestoredin.classfiles.2)thejvminterpretsorcompilesthisbytecodeintomachinecodeatime、


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

メモ帳++7.3.1
使いやすく無料のコードエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ホットトピック









