検索
ホームページJava&#&チュートリアルJava の 4 つの主要なドメインの最も完全な要約 (画像とテキスト)

最近 Web パーツの学習を終えたところ、個々のパーツは常に理解しやすいものもありますが、それらをすべてごちゃ混ぜにまとめると、常に混乱しやすい知識ポイントがいくつかあることがわかりました。実際、勤勉なポーターが不足しているわけではありませんが、インターネット上には十分な情報があります。しかし、最終的な目標は私たち自身を理解することだけではないでしょうか?私たちが理解しているものだけが真に私たちのものです。おまけとして、まず JSP の 9 つの暗黙的な オブジェクト に注目してみましょう。

下の図で、JSP の 9 つの暗黙オブジェクトを見てみましょう。これらは教師によって常に重要なポイントであると言われています。

範囲 ------- 名前が示すように、機能するサイズ範囲です。知識ポイントを独学で学習している場合、知識ポイントを知り、理解し、習得したとみなされるためには、どのような目標を達成する必要がありますか?ビアン博士の観察、聞き取り、質問から、データベースの追加、削除、変更、検索に至るまで、すべては同じ質問から始まります。用途は何ですか?使い方?なぜこのように使用できるのでしょうか?したがって、以下のような課題を把握し、それを踏まえて学習し、自分の欠点を発見することが最善の学習法であると考えます。

1) スコープの実際のサイズ。 (何ですか?)

2) スコープの役割。 (何に使うの?)

3) これらのスコープの使用方法。 (使い方は?)

4) このような実装原理を使います。 (なぜこのように使用できるのでしょうか?)

一つずつ分析してみましょう:

(1) servletcontext ドメイン (アプリケーション ドメイン)

1) スコープの実際のサイズ。 (それは何ですか?)

servletcontext ドメインのスコープは、Web アプリケーション全体です。

データ生成後は、後から利用するだけでなく、他の人も利用する場合はservletcontextを利用してください。

4つのドメインの中で最大のドメインです。

2) スコープの役割。 (何の役に立つの? )

Web アプリケーション内のすべてのサーブレットは同じ servletcontext オブジェクトを共有するため、複数のサーブレットは servletcontext オブジェクトを通じて異なるサーブレット間でデータを共有できます。

3) これらのスコープの使用方法。 (使い方?)

a)プログラミングを通じてバインドすることも、Webアプリケーションのグローバル変数として使用して、すべてのサーブレットとJSPからアクセスすることもできます

设置Context属性:
              ServletContext application=this.getServletContext();
              application.setAttribute("person1",new Person("Jim"));
              application.setAttribute("person2",new Person("Green"));
 获取Context属性:
              ServletContext application=this.getServletContext();
              Enumberation persons=application.getAttributeNames();
               while(persons.hasMoreElements()){
                      String name=(String)persons.nextElement();
                      Person p=(Person)persons.getAttribute(name);
                      application.removeAttribute(name);
              }

b) Web アプリケーション全体のコンテキスト ドメインを構成します:

web.xml設定ファイルを変更し、次の内容を追加します


Hello world !value>

</context -param> ("データ"));

ServletContext インターフェースを使用して、Web アプリケーション内の 静的コンテンツ ドキュメント構造 (HTML、GIF、JPEG ファイルなど) に直接アクセスします。次のメソッドなど: .getResource() .getResourceAsStream()
これら 2 つのメソッドのパラメータは、「/」で始まる
文字列
で、コンテキスト ルートを基準としたリソースの相対パスを示します。ドキュメント構造が存在する可能性があります。サーバーファイル システム上、war パッケージ内、リモート サーバー、またはその他の場所上にあります。 getResource("/index.jsp") などの動的リソースの取得には使用できません。このメソッドは、動的ページではなく、jsp ファイルのソース コードを返します。動的コンテンツを取得するには、「リクエストのディスパッチ」を使用します。 Web アプリケーションをリストする アクセスできるリソースについては、getResourcePaths(String path) メソッドを使用できます。

4) この方法での実装の原則または利点と欠点。 (なぜこのような使い方ができるのでしょうか?)

サーブレットはデータ出力には向いていないので、データを美化用のJSPファイルに転送してからクライアントに出力する必要があります。

JSPにJavaコードを埋め込むことができ、Javaデータを受け取ることが可能になります。同時に、servletcontext ドメインでは Web アプリケーション全体でデータを共有できるため、「スレッド セキュリティ

」の問題も転送されるデータに影響するため、リクエスト ドメインを使用する必要があります。

(2) Httpsession ドメイン (セッションドメイン)

1) スコープの実際のサイズ。 (何ですか?)

HTTPSession のスコープは: セッションです。

データが生成された後、後で使用する必要がある場合は、Httpsession ドメインを使用します。

  它是四个域中范围第二大的域。

2)  作用域的作用。(有什么用?)

  (会话范围)在第一次调用request.getSession()方法时,服务器会检查是否已经有对应的session。如果没有,就在内存中创建一个session并返回。当一短时间内(默认30分钟)session没有被使用,则服务器会销毁该session。若服务器非正常关闭,未到期的session也会跟着销毁。若调用session提供的invalidate()方法,可以立即销毁session。

3)怎么使用这些作用域。(怎么用?)

  a) jsp中操作session
    (String)request.getSession().getAttribute("username"); // 获取
    request.getSession().setAttribute("username", "xxx");  // 设置

   b) java中操作session
    //servlet中
    request.getSession();
    session.getAttribute("username");
    session.setAttribute("username", "xxx");
    session.setMaxInactiveInterval(30*60);
    session.invalidate();
 
    //struts中方法1
    ServletActionContext.getRequest().getSession().setAttribute("username", "xxx");
    ServletActionContext.getRequest().getSession().getAttribute("username");
    ServletActionContext.getRequest().getSession().setMaxInactiveInterval(30*60);
    ServletActionContext.getRequest().getSession().invalidate();

    //struts中方法2
    ActionContext.getContext().getSession().put("username", "xxx");
    ActionContext.getContext().getSession().get("username");
    ActionContext.getContext().getSession().clear();

   c) web.xml中操作session
    <session-config>          <session-timeout>30</session-timeout>      </session-config>   d) tomcat-->conf-->conf/web.xml
    <session-config>        <session-timeout>30</session-timeout>    </session-config>

4)它这样使用实现的原理。(为什么可以这么用?)

  HttpSession在服务器中,为浏览器创建独一无二的内存空间,在其中保存了会话相关的信息。服务器创建session出来后,会把session的id号,以cookie的形式回写给客户机,这样,只要客户机的浏览器不关,再去访问服务器时,都 会带着session的id号去,服务器发现客户机浏览器带session id过来了,就会使用内存中与之对应的session为之服务。如果要问我为什么,我也不知道啊!

(三)ServletRequest域(request域)

1)作用域的实际大小。(是什么?)

  ServletRequset域是:整个请求链(请求转发也存在)。

  数据产生之后,只需要使用一次,这种情况下请使用ServletRequset域。

4つのドメインの中で3番目に大きいドメインです。

2) スコープの役割。 (何の役に立つの?)

リクエストチェーン全体でデータを共有します。

最も一般的に使用される方法: サーブレットで処理されたデータは、表示のために JSP に渡されます。このとき、パラメーターを ServletRequset フィールド に配置して持ち込むことができます。

3) これらのスコープの使用方法。 (使い方は?)

a)クライアント情報を取得するメソッド
getRequestURLメソッドは、クライアントがリクエストを行うと完全なURLを返します。
getRequestURI メソッドは、リクエスト行のリソース名の部分を返します。
getQueryStringメソッドはリクエストラインのパラメータ部分を返します。
getRemoteAddrメソッドはリクエストを行ったクライアントのIPアドレスを返します
getRemoteHostメソッドはリクエストを行ったクライアントの完全なホスト名を返します
getRemotePortメソッドはクライアントが使用するネットワークポート番号を返します
getLocalAddrメソッドはWEBサーバーのIPアドレス。
getLocalNameメソッドWEBサーバーのホスト名を返す
getMethodはクライアントリクエストメソッドを取得する
b)クライアントリクエストヘッダを取得する
getHeader(文字列名)メソッド
getHeaders(文字列名)メソッド
getHeaderNamesメソッド
c ) クライアントリクエストパラメータの取得(クライアントが送信したデータ)
getParameter(name)メソッド
getParameterValues (String name)メソッド
getParameterNamesメソッド
getParameterMapメソッド

4) 実装されていますこの原理のように。 (なぜこのような使い方ができるのでしょうか?)

serviceメソッドが呼び出される前にサーバーによって作成され、serviceメソッドに渡されます。リクエスト全体が終了し、リクエストの存続期間が終了します。

 

(四)PageContext域(page域)

1)作用域的实际大小。(是什么?)

  PageContext域的作用范围是:整个JSP页面。

  它是四个域中范围最小的一个域。

2)  作用域的作用。(有什么用?)  
  a) 它可以获取其它八大隐式对象,可以认为它是一个入口对象。

  b) 获取其它所有域中的数据。

  c) 跳转到其它资源。其身上提供了forword和sendRedirect方法,简化了转发和重定向的操作。 

3)怎么使用这些作用域。(怎么用?)

  以下以一个简单的JSP页面程序为例:

nbsp;html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><title>pageContext对象_例1</title><br>page设定的值:<br>request设定的值:<br>session设定的值:<br>application设定的值:<br>范围1内的值:<br>范围2内的值:<br>范围3内的值:<br>范围4内的值:<br><!--从最小的范围page开始,然后是reques、session以及application-->pageContext修改后的session设定的值:<br>pageContext修改后的application设定的值:<br>值的查找:<br>属性name的范围:<br>

显示结果:

page设定的值:地球
request设定的值:太阳系
session设定的值:银河系
application设定的值:宇宙
范围1内的值:地球
范围2内的值:太阳系
范围3内的值:银河系
范围4内的值:宇宙
pageContext修改后的session设定的值:nullpageContext修改后的application设定的值:宇宙
值的查找:地球
属性name的范围:1

4)它这样使用实现的原理。(为什么可以这么用?)

pageContext オブジェクト、このオブジェクトは主に JSP 間の共有データにアクセスするために使用されます。 JSP に対してリクエストが行われたときに開始され、応答が完了すると破棄されます。

以上がJava の 4 つの主要なドメインの最も完全な要約 (画像とテキスト)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
2025年のトップ4 JavaScriptフレームワーク:React、Angular、Vue、Svelte2025年のトップ4 JavaScriptフレームワーク:React、Angular、Vue、SvelteMar 07, 2025 pm 06:09 PM

この記事では、2025年の上位4つのJavaScriptフレームワーク(React、Angular、Vue、Svelte)を分析し、パフォーマンス、スケーラビリティ、将来の見通しを比較します。 強力なコミュニティと生態系のためにすべてが支配的なままですが、彼らの相対的なポップ

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?Mar 17, 2025 pm 05:44 PM

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Mar 17, 2025 pm 05:35 PM

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

node.js 20:キーパフォーマンスが向上し、新機能node.js 20:キーパフォーマンスが向上し、新機能Mar 07, 2025 pm 06:12 PM

node.js 20は、V8エンジンの改善、特により速いガベージコレクションとI/Oを介してパフォーマンスを大幅に向上させます。 新機能には、より良いWebセンブリのサポートと洗練されたデバッグツール、開発者の生産性とアプリケーション速度の向上が含まれます。

Spring Boot Snakeyaml 2.0 CVE-2022-1471問題修正Spring Boot Snakeyaml 2.0 CVE-2022-1471問題修正Mar 07, 2025 pm 05:52 PM

この記事では、リモートコードの実行を可能にする重大な欠陥であるSnakeyamlのCVE-2022-1471の脆弱性について説明します。 Snakeyaml 1.33以降のSpring Bootアプリケーションをアップグレードする方法は、このリスクを軽減する方法を詳述し、その依存関係のアップデートを強調しています

Iceberg:データレイクテーブルの未来Iceberg:データレイクテーブルの未来Mar 07, 2025 pm 06:31 PM

大規模な分析データセットのオープンテーブル形式であるIcebergは、データの湖のパフォーマンスとスケーラビリティを向上させます。 内部メタデータ管理を通じて、寄木細工/ORCの制限に対処し、効率的なスキーマの進化、タイムトラベル、同時wを可能にします

Javaで機能的なプログラミング技術を実装するにはどうすればよいですか?Javaで機能的なプログラミング技術を実装するにはどうすればよいですか?Mar 11, 2025 pm 05:51 PM

この記事では、Lambda式、Streams API、メソッド参照、およびオプションを使用して、機能プログラミングをJavaに統合することを調べます。 それは、簡潔さと不変性を通じてコードの読みやすさと保守性の改善などの利点を強調しています

高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?Mar 17, 2025 pm 05:46 PM

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!