Webアプリケーションの作成

本頁では、簡単なWebアプリケーションを作成し、ApacheTomcatに配備し動作確認することで TomcatにWebアプリケーションを製造から配備までの一連の工程を学習することを目的とします。

Tomcatを利用してWebアプリケーションを初めて作成される方は、本頁の記載事項をテキストエディタとコマンドプロンプトを利用して、是非実行して下さい。 サーバーサイドJava(Servlet,Jsp)においても、JavaSEのアプリケーションの基本であるJavaソースファイルの作成、Javacコマンドによるクラスファイルの作成など 基本的な作業の流れは、全く変わりがありません。

EclipseからWebアプリケーションを製造する方法については、「Eclipse」の章にて説明します。まずは、本書の基本的な事を コマンドプロンプトとエディタを利用して最も基本的で最も大切な事項について学習して下さい。

尚、本書で利用した環境は、以下となります。

  • OS:Windows10
  • JavaSE:Java1.8.0_141
  • Tomcat:Tomcat8.5.16

プロジェクト初期構築

Webアプリケーション作成プロセス01

Webアプリケーションを作成する拠点となるプロジェクトディレクトリ「C:¥project¥firstweb」を作成します。
プロジェクトコードは「firstweb」とします。

buildディレクトリ

javacコマンドやwarコマンドを実施するバッチファイルを管理します。 本ディレクトリのwebsample_build.batを実行することで、src/main/java以下に格納した javaソースファイルをコンパイルし、web/WEB-INF/classes以下にclassファイルを生成します。

javacコンパイル後webディレクトリを起点として、firstweb.warファイルをwarコマンドを実行して作成します。

srcディレクトリ

JavaSE及びJavaEEの言語を利用したJavaソースファイルをパッケージ階層に従って格納します。 javaソースファイルの格納先はsrc/main/javaになります。

src/main/resourcesディレクトリは、Webアプリケーションのプロパティファイルやlogback用の設定ファイルなどを管理します。
warコマンド実行前にバッチファイルからweb/WEB-INF/classes配下にコピーします。

webディレクトリ

ディレクトリ
またはファイル
説明
css 静的コンテンツ。cssファイルを管理します。
出力するhtml(jsp,servlet含む)のheadタグにパスを指定して利用します。
js 静的コンテンツ。JavaScriptファイルを管理します。
出力するhtml(jsp,servlet含む)にパスを指定して利用します。
images 静的コンテンツ。アイコンなどの小さな画像ファイルを管理します。
出力するhtml(jsp,servlet含む)にimageタグのsrc属性で指定して利用します。
html 静的コンテンツ。URIに指定されたhtmlをそのままWebブラウザに返します。
jsp 動的コンテンツ。jspファイルを機能別ディレクトリに管理します。
META-INF jar(war)ファイルの仕様の1つ。
圧縮したjar,warが誰がいつ作成し、どのようなツールでビルドし、どのようなバージョンであるかなど jarファイルの製造情報を明記するファイルMANIFEST.MFなどを管理します。 大規模なシステムでは、開発したjar及びwarファイルにMETA-INF/MANIFEST.MFは必須事項です。
META-INF/
MANIFEST.MF
誰がいつ作成し、どのようなツールでビルドし、どのようなバージョンであるかなど jarファイルの製造情報を明記します。
META-INF/
context.xml
TomcatにWebアプリケーション固有の設定(JNDI[JDBC]接続など)を記載するファイル。
WEB-INF Webアプリケーションを構成するclassファイル、jarファイル及びWebアプリケーションの設定ファイルweb.xml(servlet,filterなどの設定) を管理します。
WEB-INF/
classes
JavaSE,JavaEEを利用したJavaソースファイルをコンパイルしたクラスファイルを格納します。
WEB-INF/
lib
Javaソースファイル内でimport節で利用する外部Javaライブラリ(*.jar)を管理します。
WEB-INF/
web.xml
Webアプリケーション配備記述子。アプリケーションを構成するサーブレット、フィルタその他コンポーネント、およびサーバーが実行する初期化パラメータとコンテナ管理のセキュリティ制約を記述したXMLファイルです。

上記ディレクトリをプロジェクト管理ディレクトリ(C:¥projects)に作成して下さい。
css,html,js,jsp,image内のディレクトリはある程度規模のあるシステムを想定したディレクトリ階層をしています。 初めての方は、css,html,js,jsp,imageの1階層のディレクトリで確認して下さい。