0

私のユースケースは次のとおりです。

  1. 一部のユーザーは get 要求を行い、コマンド プロンプトを実行するオブジェクトを作成します。
  2. 別のユーザーが、別の get 要求を作成して、手順 1 で作成したプロセスを強制終了したいと考えています。

そのため、最初の get リクエストで作成されたオブジェクトに 2 番目の get リクエストでアクセスしたい、つまり、アプリケーション全体でオブジェクトを利用できるようにしたい。

Java SE では、メイン メソッドでオブジェクトのリストを作成し、それを新しいオブジェクトを作成するメソッドにパラメーターとして渡します。指定されたリストに新しく作成されたオブジェクトを追加します。別のメソッドは、プロセスを強制終了する必要があります。このリストからオブジェクトを選択しますが、EE にはメイン メソッドがないため、アプリケーション全体で使用できるオブジェクトをどこに格納するかを指定します。

4

2 に答える 2

3

グローバル スコープを使用することに絶対の確信がある場合 (同期の問題などを解決した場合)、次のことができます。

  1. Web アプリケーションのコンテキストでは、ServletContext( Javadocs )を使用します。

    • application暗黙の変数を使用して JSP から。
    • 使用するサーブレットからgetServletConfig().getServletContext()

    は、とServletContextのメソッドを使用して、必要に応じてマップのように動作します。Java SE の場合について話していたリストをそこに入れることができます。setAttribute(String, Object)getAttribute(String)removeAttribute(String)

  2. EJB コンテキスト:

    • JNDI を使用する (扱いにくく、アプリケーション サーバー固有)
    • リストをセッション EJB にラップします@Singleton(はるかに優れています)
  3. Web または EJB から、CDI を使用して:

    • リストを Bean でラップします@ApplicationScoped(CDI 用語ではシングルトン)
于 2013-09-17T11:19:32.607 に答える