ホームページ  >  記事  >  Java  >  サーブレットコンテキストとは

サーブレットコンテキストとは

(*-*)浩
(*-*)浩オリジナル
2019-05-06 13:23:0411910ブラウズ

ServletContext は、Web アプリケーションのサーブレット ビューを表示するサーブレットの最大のインターフェイスであり、ServletContext インスタンスは「getServletContext()」メソッドを通じて取得されます。

サーブレットコンテキストとは

#この記事では、ServletContext の役割、そのメソッド、およびその使用法を紹介します。

推奨コース: Java チュートリアル

各アプリケーションには、それに関連付けられた ServletContext オブジェクトがあります。コンテナが複数の仮想マシンに分散されている場合、Web アプリケーションは、分散されている各仮想マシン上に ServletContext オブジェクトを持ちます。 ServletContext インスタンス。デフォルトでは、ServletContext は分散されず、1 つの仮想マシン上にのみ存在します。

ServletContext は正式にはサーブレット コンテキストと呼ばれます。サーバーはプロジェクトごとにオブジェクト、つまり ServletContext オブジェクトを作成します。このオブジェクトはグローバルに一意であり、プロジェクト内のすべてのサーブレットによって共有されます。したがって、これはグローバル アプリケーション共有オブジェクトと呼ばれます。

ServletContext: 現在の Web アプリケーションを表します (非常に重要)

WEB コンテナが開始されると、各 WEB アプリケーションに対応する ServletContext オブジェクトが作成されます。現在の Web アプリケーション。

ServletConfig オブジェクトは、ServletContext オブジェクトへの参照を維持します。サーブレットを作成するとき、開発者は、ServletConfig.getServletContext メソッドを通じて ServletContext オブジェクトを取得できます。WEB アプリケーション内のすべてのサーブレットは同じ ServletContext オブジェクトを共有するため、 , Servlet オブジェクト間の通信は、ServletContext オブジェクトを通じて実現できます。

ServletContext オブジェクトは通常、コンテキスト ドメイン オブジェクトとも呼ばれます。

ServletContext のアプリケーション:

コンテキスト内で一般的に使用されるメソッドは次のとおりです:

void setAttribute(String,Object);

Object getAttribute(String );

void deleteAttribute(String);

1. ドメイン オブジェクトとして、データは Web アプリケーション全体で共有できます。

ドメイン オブジェクト: 可視範囲内でデータを共有するために使用されるオブジェクト

スコープ: Web アプリケーション スコープ全体でデータを共有

ライフ サイクル: サーバーの起動時 ServletContext の後Web アプリケーションがロードされた後にオブジェクトが作成され、ドメインが生成されます。 Web アプリケーションがコンテナーから削除されるか、サーバーがシャットダウンされると、Web アプリケーション

の破棄とともにドメインも破棄されます。

2. WEB アプリケーションの初期化パラメータを取得する

最初の段落では、 タグを通じて単一のサーブレットに構成情報を追加します。他のサーブレットからはアクセスできません。ただし、 タグ (Servlet タグと並行して) を使用して Web アプリケーション全体のプロパティを構成すると、すべてのサーブレットが内部のパラメーターにアクセスできるようになります。たとえば、ここにデータベース構成情報を入力できます。

ここで関係するいくつかの概念を混同しないでください。

リクエスト パラメータ パラメータ --- ブラウザによって送信されたリクエスト内のパラメータ情報 初期化パラメータ initparameter --- サーブレットまたは基本の web.xml 内ServletContext 設定の初期化に含まれるパラメータ ドメイン属性 --- 4 つの主要なスコープでアクセスされるキーと値のペア

コード例:

web.xml では、Web 全体です。アプリケーションは初期化パラメータ(ユーザー名、パスワード)を追加します。コードの場所は次のとおりです。

サーブレットコンテキストとは

package com.vae.servlet;
 
 
import java.io.IOException;
import java.util.Enumeration;
 
 
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
 
public class ServletTest03 extends HttpServlet {
 
 
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        ServletContext context = this.getServletContext(); // 得到上下文对象
 
 
        // 获取单个的Context里面的初始化参数
        String value1 = context.getInitParameter("username");
        String value2 = context.getInitParameter("password");
        System.out.println(value1 + ";" + value2);
        System.out.println();
 
 
        // 一次性获取Context里所有的初始化参数
        Enumeration enumeration = context.getInitParameterNames();
        while (enumeration.hasMoreElements()) {
            String name = (String) enumeration.nextElement();
            String value = context.getInitParameter(name);
            System.out.println(name + ";" + value);
 
 
        }
 
 
    }
 
 
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
 
 
}

上記のコードからわかるように、context.getInitParameter() メソッドを通じて初期化パラメータを取得できます。

操作効果は次のとおりです:

サーブレットコンテキストとは

以上がサーブレットコンテキストとはの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。