Cosminexus 機能解説
ここでは,Webアプリケーションを実行する場合の留意事項について説明します。
クライアントがリクエストするURLに対してどのサーブレットが呼び出されるかの設定をサーブレットマッピングといいます。Java Servlet Specification v2.4では,サーブレットマッピングをDD(WEB-INF/web.xml)内に記述するように求めています。
これに対して,Webコンテナでデフォルトで定義されているマッピングをデフォルトマッピングといいます。Webコンテナでは,次に示すマッピングをデフォルトで定義しています。
表4-2 Webコンテナで定義されているサーブレット/JSPのデフォルトマッピング
URL | 取り扱い |
---|---|
*.jsp | JSPファイルとして取り扱われます。 |
*.jspx | JSPドキュメントとして取り扱われます。なお,Servlet 2.2およびServlet 2.3の場合は静的コンテンツとして扱われます。 |
/servlet/* | URLの「*」の部分には,サーブレットの完全修飾クラス名,またはweb.xmlで定義したサーブレット名を指定できます。サーブレットの完全修飾クラス名を指定した場合,指定したサーブレットが実行されます。サーブレット名を指定した場合,web.xmlで定義したサーブレットが実行されます。 実行するサーブレットのクラスは,WEB-INF/classes以下,またはWEB-INF/lib以下に配置されたJARファイルに含まれている必要があります。実行するサーブレットは,サーブレット名から検索されます。 URLに指定された「*」の部分がサーブレット名として定義されていない場合,サーブレットクラスが検索されます。 |
Webコンテナでは,次に示すタグがDD(WEB-INF/web.xml)に設定されていない場合,次に示すデフォルト値を使用します。
表4-3 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タイプの対応づけについては,マニュアル「Cosminexus リファレンス 定義編」を参照してください。
Webアプリケーション単位に同じクラスのサーブレットのインスタンスを一つ作成します。SingleThreadModelを継承したサーブレットのインスタンスも,一般のサーブレットと同様にWebアプリケーション単位に一つ作成します。
ただし,同一のサーブレットおよびJSPに対して,デフォルトのマッピングとDDに記述したマッピングの両方でアクセスすると,インスタンスは次のように生成されます。
表4-4 デフォルトマッピングとDDに記述したマッピングの両方でアクセスする場合のインスタンスの生成
URL | インスタンス |
---|---|
*.jsp | DDに記述したマッピングでアクセスした場合とは別のインスタンスが生成されます。 |
*.jspx | |
/servlet/* |
|
また,SingleThreadModelを継承した単一のサーブレットに対して,Webアプリケーション単位にリクエストが並列に複数到着した場合,各スレッドがオーバラップしないで1スレッドずつ順に実行するように制御します。
サーブレットのinitメソッドおよびserviceメソッドの実行のタイミングは,デフォルトマッピングかサーブレットマッピングかによって異なります。
レスポンス送信時に使用されるサーブレットのバッファは,リクエスト処理スレッドの数だけ保持されます。javax.servlet.ServletResponseのsetBufferSizeメソッドを使用してバッファサイズを変更する場合は,バッファサイズ×リクエスト処理スレッド数分のメモリが確保されることを考慮した上で,メモリ使用量を見積もってください。
クエリ文字列は,URLの?マーク以降に,"名前=値"の組が一つ以上組み合わさって構成されます。
Cosminexusでは,"名前=値"の部分に複数の"="がある場合,最初の"="より前の文字列が名前,後ろの文字列が値となります。例えば,URLが「http://host/examples?a=b=c」の場合は,「名前"a"の値は"b=c"」と解析されます。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.