Cosminexus V9 アプリケーションサーバ 機能解説 互換編

[目次][用語][索引][前へ][次へ]

3.4.1 Webアプリケーションの実行

Webコンテナでは,Webアプリケーションを実行できます。ただし,サーブレットエンジンモードの場合,Java Servlet2.4仕様,およびJavaServer Pages(JSP)2.0仕様に準拠したWebアプリケーションは実行できません。また,Webコンテナを使用してWebアプリケーションを実行するには,必ずWebサーバとしてHTTP ServerまたはMicrosoft IISを使用する必要があります。

<この項の構成>
(1) Webアプリケーションのデプロイとアンデプロイ
(2) Webアプリケーションを実行する場合の留意事項

(1) Webアプリケーションのデプロイとアンデプロイ

ここでは,サーブレットエンジンモードの場合のWebアプリケーションのデプロイおよびアンデプロイについて説明します。

(a) Webアプリケーションのデプロイ

サーブレットエンジンモードの場合,WAR形式のWebアプリケーションをデプロイするには,次に示す二つの方法があります。

Webアプリケーションのデプロイの手順については,「3.7.7 Webアプリケーションの設定」を参照してください。

複数のWebアプリケーションのデプロイ
複数のWebアプリケーションをデプロイした場合,Webアプリケーションごとに独立のクラスローダが作成されます。このため,異なるWebアプリケーションで同一のクラス名のクラス(Loginサーブレットなど)を用いた場合でも,別々のクラスローダ上で独立に扱われます。
(b) Webアプリケーションのアンデプロイ

サーブレットエンジンモードの場合,次に示す二つの方法があります。

Webアプリケーションのアンデプロイの手順については,「3.7.7 Webアプリケーションの設定」を参照してください。

(2) Webアプリケーションを実行する場合の留意事項

ここでは,Webアプリケーションを実行する場合の留意事項について説明します。

(a) サーブレット/JSPのデフォルトマッピングについて

Java Servlet Specification v2.3では,クライアントがリクエストするURLに対してどのサーブレットが呼び出されるかの設定(サーブレットマッピング)をDD(WEB-INF/web.xml)内に記述するように求めていますが,Webコンテナでは,これ以外にも次に示すマッピングをデフォルトで定義しています。

URL 取り扱い
*.jsp JSPファイルとして取り扱われます。
/servlet/* WEB-INF/classes以下にあるサーブレットクラス,またはWEB-INF/lib以下にあるJARファイルに含まれるサーブレットクラスが呼び出されます。
(b) DD(WEB-INF/web.xml)内のタグが設定されていない場合のデフォルト値について

Webコンテナでは,次に示すタグがDD(WEB-INF/web.xml)に設定されていない場合,次に示すデフォルト値を使用します。

タグ名 設定されていない場合のデフォルト値
welcome-file-list
 
<welcome-file-list>
    <welcome-file>
        index.jsp
    </welcome-file>
    <welcome-file>
        index.html
    </welcome-file>
    <welcome-file>
        index.htm
    </welcome-file>
</welcome-file-list>
session-timeout 30
mime-mapping 拡張子とMIMEタイプとの対応付け。

DD(WEB-INF/web.xml)にこれらのタグを設定している場合には,次の設定となります。

なお,DD(WEB-INF/web.xml)のmime-mappingタグにデフォルトで設定されている拡張子とMIMEタイプの対応づけについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「付録B.1 拡張子とMIMEタイプの対応づけ」を参照してください。

(c) サーブレットのインスタンス作成数

Webアプリケーション単位に同じクラスのサーブレットのインスタンスを一つ作成します。SingleThreadModelを継承したサーブレットのインスタンスも,一般のサーブレットと同様にWebアプリケーション単位に一つ作成します。

ただし,同一のサーブレットおよびJSPに対して,デフォルトのマッピングとDDに記述したマッピングの両方でアクセスすると,それぞれに別のインスタンスが生成されます。

また,SingleThreadModelを継承した単一のサーブレットに対して,Webアプリケーション単位にリクエストが並列に複数到着した場合,各スレッドがオーバラップしないで1スレッドずつ順に実行するように制御します。

(d) クエリ文字列の解析について

クエリ文字列は,URLの?マーク以降に,"名前=値"の組が一つ以上組み合わさって構成されます。

アプリケーションサーバでは,"名前=値"の部分に複数の"="がある場合,最初の"="より前の文字列が名前,後ろの文字列が値となります。例えば,URLが「http://host/examples?a=b=c」の場合は,「名前"a"の値は"b=c"」と解析されます。