Oracle® Fusion Middleware Oracle WebLogic Server Webアプリケーション、サーブレット、JSP の開発 11g リリース1 (10.3.5) B60993-03 |
|
前 |
次の項では、WebLogic Webアプリケーションとアプリケーション・リソースの設計、開発、およびデプロイにおけるベスト・プラクティスを紹介します。
サブスクリプトの呼出しに関するCGIのベスト・プラクティスを次に示します。
sh subscript.sh
は、展開(非アーカイブ) WebアプリケーションおよびアーカイブWebアプリケーション(WARファイル)の両方に使用できます。
sh $PWD/subscript.sh
は、展開(非アーカイブ) WebアプリケーションおよびアーカイブWebアプリケーション(WARファイル)の両方に使用できます。
sh $DOCUMENT_ROOT/$PATH/subscript.sh
は、展開(非アーカイブ) Webアプリケーションに使用できます。アーカイブWebアプリケーション(WARファイル)には使用できません。これは、ドキュメント・ルートがお使いのWARファイルのルートを指している場合があり、スクリプト言語でそのWARファイルを開いて実行に必要なsubscript.sh
を検出できないことがあるためです。これはsh
のみでなく、すべてのスクリプト言語に当てはまります。
HTTPサーブレットを作成する際は、次のベスト・プラクティスについて検討します。
サーブレット・クラスは、WebアプリケーションのWEB-INF/classes
ディレクトリにコンパイルします。
サーブレットは、必ずJ2EE標準Webアプリケーションのデプロイメント記述子(web.xml
)に登録します。
サーブレットのリクエストへの応答時には、サーブレットに関連するフィルタを適用する前にサーブレット・クラス・ファイルのタイム・スタンプがチェックされ、メモリー内にある既存のサーブレット・インスタンスと比較されます。バージョンの新しいサーブレット・クラスがある場合、すべてのサーブレット・クラスが再ロードされてからフィルタ処理が行われます。サーブレットが再ロードされると、そのサーブレットのinit()
メソッドが呼び出されます。変更後のサーブレット・クラスが検出された場合、サーブレット・クラス間に依存関係が存在する可能性があるため、すべてのサーブレットが再ロードされます。
サーブレット・リロード
属性のタイム・スタンプがWebLogic Serverによってチェックされる間隔(秒単位)を設定できます。この属性は、管理コンソールのWebアプリケーションの「ファイル」
タブで設定します。この属性をゼロに設定すると、WebLogic Serverによって、リクエストごとにタイム・スタンプがチェックされます。これはサーブレットの開発中やテスト中には便利ですが、本番環境では必要以上に時間が消費されます。この属性を-1
に設定すると、変更されたサーブレットについてのチェックがWebLogic Serverで行われません。
JSPの再コンパイルを回避する方法の詳細は、「Avoiding Unnecessary JSP Compilation」(http://www.oracle.com/technology/index.html
)の特に、「Scenarios that Cause Recompilation of JSPs」という項を参照してください。
J2EEでは、レスポンスに適合させるためにサーブレットでサブクラス化することのできるjavax.servlet.ServletResponseWrapper
クラスが提供されます。
ServletResponseWrapper
クラスをサブクラス化して独自のレスポンス・ラッパーを作成する場合、flushBuffer()
メソッドとresetBuffer()
メソッドを常にオーバーライドすることをお薦めします。そうしない場合、レスポンスが早まって行われる可能性があります。