出版

これらの簡単なJavaのヒントでJavaスキルを磨きましょう。まず、WARファイルがWebサーバーへのリソースのデプロイにどのように役立つかを学びます。次に、HttpSessionBindingListenerの実装に関する便利なヒントを学びます。
Antビルドスクリプトから作成されたWebアプリケーションアーカイブ(WAR)ファイルを使用して、Javaコードをサーバーにデプロイできます。JavaのWebアプリケーションは、WEB-INFという特別なディレクトリ内に特定の形式で保存されます。このディレクトリには、JARファイル用のlibディレクトリ、パッケージ化されていないクラスファイル用のclassesディレクトリ、そしてアプリケーションを記述するWeb.xmlファイルが含まれています。
Webアプリケーションの残りの部分は、通常のHTML、JSP、画像、ディレクトリです。これらはWARファイルに圧縮してサーバーにデプロイできます。サーバーに変更を加える必要はありません。最も重要なのは、WARファイルがwebapps/ディレクトリに配置されると、サーバーがそれを認識し、自動的に解凍してサーバーに追加することです。Server.xmlファイルは変更されません。変更のデプロイは、WARファイルを新しいファイルで上書きするだけです。サーバーは再びそれを認識し、解凍してすべてのクラスファイルをリロードします。
Ant warタスクはjarタスクの拡張版であり、WEB-INFディレクトリに対して特別な処理を行います。WEB-INFディレクトリには以下の4つのサブタグが含まれます。
- · lib
- · クラス
- · ウェブインフ
- · メタインフ
これらのタグで指定されたファイルは、それぞれのディレクトリに格納されます。
リストAは、ApplicationVersion2.warというファイルをビルドするwarタスクの例を示しています。このタスクは、xml/av2-web.xmlからWeb.xmlファイルを取得し、HTMLディレクトリ内のすべてのファイルをインクルードします。さらに、lib/extディレクトリ内のすべてのファイル(Oracle関連のファイルを除く)をWARのWEB-INF/libディレクトリに配置し、build/servletsディレクトリ内のすべてのサーブレットをWEB-INF/classesディレクトリに配置します。
.NET に移行する準備ができていませんか?
Javaから.NETへの移行は容易ではありません。既存のアプリケーションをそのまま利用した方がよい場合もあります。「Java EJBアプリケーションを.NETに移行すべきではない5つの理由」では、Javaを使い続けるべき理由を詳しく説明しています。この記事に関する最近のディスカッション投稿もお見逃しなく。
HttpSessionにオブジェクトをバインドする
場合によっては、リソースやキャッシュなどとして、ユーザーのサーブレットまたはJSPセッションの存続期間中存続するオブジェクトを作成したいことがあります。しかし、そのオブジェクトを別の場所からも利用できるようにしたい場合、問題が発生する可能性があります。セッション終了時にオブジェクトがガベージコレクションの対象になるのは避けたいからです。この問題は、HttpSessionBindingListenerを実装することで回避できます。
リスト Bに簡単な例を示します。(try/catch は無視されることに注意してください。)
このオブジェクトをセッションにバインドするのに、特に作業は必要ありません。オブジェクトをセッションに配置するだけです。セッションに配置されたオブジェクトがHttpSessionBindingListenerを実装している場合、セッションは自動的にそのオブジェクトをリスナーとして設定し、バインド時とアンバインド時に通知します。
HttpSessionBindingListener を実装すると、オブジェクトをセッションのスコープ内に完全に配置することができ、そのスコープ内でのオブジェクトの作成と破棄も監視できるようになります。

ベヤード世代Java