2

以下に示すようなサーブレットアプリケーションのweb.xmlについて言及すると、クエリがあります。

<servlet>
<servlet-name>AuthenticationServlet</servlet-name>
<display-name>AuthenticationServlet</display-name>
<servlet-class>com.trading.AuthenticationServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>

<servlet>
<servlet-name>AuthorizationServlet</servlet-name>
<display-name>AuthorizationServlet</display-name>
<servlet-class>com.trading.AuthorizationServlet</servlet-class>
<load-on-startup>4</load-on-startup>
</servlet>

今、私はAuthenticationServletサーブレットコンテナがそれの2つのインスタンスを作成する必要があります、それをどのように行うか、アドバイスしてください

4

1 に答える 1

5

同じサーブレットクラスを指す場合は、異なる<servlet>エントリを使用して複数のサーブレットインスタンスを定義できます。web.xml

<servlet>
    <servlet-name>AuthorizationServlet1</servlet-name>
    <servlet-class>com.trading.AuthorizationServlet</servlet-class>
</servlet>
<servlet>
    <servlet-name>AuthorizationServlet2</servlet-name>
    <servlet-class>com.trading.AuthorizationServlet</servlet-class>
</servlet>

それらを異なるURLパターンにマッピングするだけで済みます。

とはいえ、質問で何も言わなかった特定の機能要件の解決策を探している間、あなたは完全に間違った方向を見ているという強い印象を持っています。適切に設計されたサーブレットWebアプリケーションでは、通常、サーブレットの複数のインスタンスを持つ必要はありません。たとえば、ユーザー固有の情報を保存する必要がある場合は、そのためにHTTPセッションを使用します。サーブレットがどのように機能し、どのように使用されるかについては、「サーブレットはどのように機能するか」を参照してください。インスタンス化、セッション、共有変数、マルチスレッド

于 2012-07-20T16:28:56.213 に答える