Web プロジェクト内の Web アプリケーションのリソースを作成および保守する必要があります。Web プロジェクト には 2 つのタイプがあります。動的プロジェクトおよび静的プロジェクトです。
動的 Web プロジェクトには、イメージと HTML ファイルのような静的リソースの他に、
サーブレット、JSP ファイル、フィルター、関連メタデータなどの動的 J2EE リソースを含めることができます。
静的 Web プロジェクトには静的リソースが含まれるに過ぎません。
Web プロジェクトの作成時には、Cascading Style Sheet と JSP タグ・ライブラリー (動的 Web プロジェクトの場合) をインクルードして、プロジェクト・リソースの豊富な設定を使用して開発を開始できるようにすることができます。
動的 Web プロジェクトは常に、エンタープライズ・アプリケーション・プロジェクトに組み込まれます。
動的 Web プロジェクトの作成に使用するウィザードは、エンタープライズ・アプリケーション (EAR) プロジェクトがすでに存在していない場合、それも作成します。
ウィザードはまた、指定されたエンタープライズ・アプリケーション・プロジェクト
の application.xml デプロイメント記述子も更新し、Web プロジェクトをモジュール要素として定義します。
動的 Web プロジェクトを新たに作成しないで WAR ファイルをインポートする場合は、「WAR インポート」ウィザードで Web プロジェクトを指定する必要があり、また、あらかじめ EAR プロジェクトが必要となります。
J2EE 規約が余分のオーバーヘッドとなることがあるのは、JSP ファイルやサーブレットなどの動的ファイルを含まない、
コンテンツに基づく静的 Web アプリケーションを作成する場合にかぎられます。
この場合、最も基本的な Web プロジェクトのみを必要とするときには、静的 Web プロジェクト・タイプを使用することができます (静的 Web プロジェクトを参照)。
静的 Web プロジェクトは、プロジェクト・メニューから「動的 Web プロジェクトへの変換」を選択することによって動的 Web プロジェクトに変換できることに注意してください。
J2EE モデル、具体的には Sun Microsystems Java Servlet
2.3 Specification は、Web アプリケーション・ディレクトリー構造を定義します。
この構造には、Web コンテンツ・ファイル、クラス・ファイル、クラスパス、デプロイメント記述子、
およびサポートしているメタデータのロケーションが指定されます。Web プロジェクト階層には、プロジェクトから作成された Web アプリケーションの階層が反映されています。
ワークベンチでは、「新規 Web プロジェクト」ウィザードを使用して新規 Web プロジェクトを作成することができます。
主要なプロジェクト・フォルダーには、Web アプリケーションに関連する開発オブジェクトが全部含まれています。
Web コンテンツ・フォルダーには、Web アプリケーションの作成に必要なプロジェクトの要素が含まれています。
このフォルダー構造は、Sun Microsystems. が定義した Web アプリケーション・アーカイブ (WAR) 構造にマップされます。
以下のデフォルト要素は、Web プロジェクト・フォルダー階層内に位置しています。
注: 「プロジェクト・エクスプローラー」ビューでは、Web リソースの表示をカスタマイズして開発時の管理を容易にするために、Web プロジェクトがフィルターを経てフォルダー・ノードに集約されます。
フィルター構造に関する情報については、
「プロジェクト・エクスプローラー」ビューを参照してください。
- Web デプロイメント記述子
- 標準 Web アプリケーション・デプロイメント記述子 (web.xml ファイル)。
- JavaSource
- プロジェクトの、クラス、Bean、およびサーブレットの Java™ ソース・コードが含まれます。これらのリソースは Web プロジェクトに追加されると、自動的にコンパイルされ、生成されたファイルが
WEB-INF/クラス・ディレクトリーに追加されます。
WAR ファイルの作成時にオプションを指定していなければ、ソース・ディレクトリーの内容が
WAR ファイル内にパッケージされることはありません。
注: フォルダーに与えられているデフォルト名は JavaSources ですが、この名前は「プロジェクト・エクスプローラー」ビューまたは、
を選択すると使用できる「設定」ページから、変更することができます。
- imported_classes フォルダー
- このフォルダーは WAR インポート時に作成することができ、このフォルダーにはソースを伴わないクラス・ファイルが含まれます。
imported_classes フォルダーは、Java クラス・フォルダーです。
Java クラス・フォルダーは、Web プロジェクトの「Java のビルド・パス」プロパティー・ページで作成することもできます。
- WebContent フォルダー
- HTML、JSP、グラフィック・ファイルなどを含めた全 Web リソースの必須ロケーション。
ファイルがこのディレクトリー (またはこのディレクトリーの下にあるサブディレクトリー構造)
内に置かれていない場合は、サーバー上におけるアプリケーションの実行時にファイルが使用できないことになります。
Web コンテンツ・フォルダーは、サーバーにデプロイされる WAR ファイルの内容を表しています。
Web コンテンツ・フォルダーの下にないファイルはどれも開発時のリソース
(たとえば、.java ファイル、.sql ファイル、.mif ファイル)
とみなされ、プロジェクトの単体テスト時または公開時にはデプロイされることがありません。
注: フォルダーに与えられているデフォルト名は WebContent
ですが、この名前はプロジェクト・エクスプローラーでフォルダーを右マウス・ボタン・クリックしてから「名前変更」を選択するか、プロジェクトの「プロパティー」ダイアログの Web ページから、変更することができます。
動的 Web プロジェクトでフォルダー名を変更すると、Java ビルド出力ディレクトリーが更新されます。
新規 Web プロジェクトの作成時に適用されるデフォルト・フォルダー名の設定は、
を選択して変更することができます。
- META-INF
- このディレクトリーには、MANIFEST.MF ファイルが含まれます。
このファイルは、同じエンタープライズ・アプリケーション・プロジェクト内のその他のプロジェクト内にある従属 JAR
ファイルのクラスパスをマップするために使用されます。
このファイル内のエントリーは、参照される JAR ファイルをインクルードするように、実行時プロジェクト・クラスパスおよび
Java ビルド設定を更新します。
- テーマ
- スタイル・シートおよびその他のスタイル関連オブジェクトのカスケードのための推奨ディレクトリー。
- WEB-INF
- Sun Microsystems Java Servlet 2.3 Specification
に基づき、このディレクトリーには、Web アプリケーション用にサポートされている Web リソースが
web.xml ファイル、classes と lib ディレクトリーと併せて含まれます。
- /classes
- このディレクトリーはサーブレット、ユーティリティー・クラス、および
Java コンパイラー出力ディレクトリー用のものです。このディレクトリー内のクラスは、アプリケーション・クラス・ローダーがクラスをロードするために使用します。
このディレクトリーの中のフォルダーは、パッケージとクラス名を次に示すようにマップします:
/WEB-INF/classes/com/mycorp/servlets/MyServlet.class。
.class
ファイルを直接、このディレクトリーに配置しないようにしてください。Java コンパイラーが Java Resources ディレクトリーの中にある Java ソース・ファイルをコンパイルする時に、.class ファイルは自動的にこのディレクトリーの中に配置されます。
このディレクトリーの中に直接に配置されたファイルはどれも Java コンパイラーが実行時に削除します。
- /lib
- ご使用の Web アプリケーションが参照する、サポート Jar ファイル。このディレクトリー内に配置された
.jar ファイルの中のクラスはどれも、ご使用の Web アプリケーションに使用することができます。
- ライブラリー
- ご使用の Web アプリケーションが参照する、サポート Jar ファイル。このフォルダーには
lib フォルダーの内容が反映されています。
さらに、このフォルダーには、Web ライブラリー・プロジェクトが含まれています。
このプロジェクトは Web プロジェクトの中には物理的に存在しない「仮想」Jar ファイルですが、
ご使用のワークスペースのどこかにある Java プロジェクトと関連しています。Web ライブラリー・プロジェクトは、アプリケーションの
WAR ファイルをエクスポートする時にご使用のプロジェクトと一緒にパッケージにされます。
注: 実際の JAR ファイルを
WEB-INF/lib フォルダーから削除しない限り、Java のビルド・パスに関するライブラリー・エントリーは残ります。ライブラリー・パス・エントリーを除去しても
JAR ファイルを除去しなかった場合には、ライブラリー・エントリーが自動的にパスに改めて追加されます。