TomcatのWebアプリケーションのフォルダ構成についてです。Tomcatのバージョンは 9.0.x のものです。OSはlinuxを想定しています。
Tomcatをインストールすると、その配下には bin、conf、lib、logs、webapps などのフォルダが配置されます。conf配下の server.xml は tomcat全体の設定をするものです。logs配下の catalina.out にはtomcat起動時、終了時のログが出力されます。Webアプリケーションは webapps配下になります。以下はwebapps配下にtoolsというWebアプリケーションを配置した例です。
META-INF配下の context.xml とWEB-INF配下の web.xml について記載しておきます。
context.xml にはWebアプリケーションの設定を記載します。自動リロードの設定やデータベースの設定をする際に使います。web.xml はWebアプリケーションの動作設定を記載するファイルです。サーブレットのURLや初期化パラメータ、フィルターなどの設定を行います。META-INF、および、WEB-INFのフォルダはブラウザからURLを指定して開くことはできません。ユーザーにはこの配下のファイルを隠蔽します。
Webアプリケーション自体のソースファイルは src配下、クラスファイルはclasses配下に配置します。この例ではsample01はパッケージを表しており、他のパッケージ(例えば、sample02、sample03)を追加することができます。その際はフォルダを追加します。
クラスファイルのコンパイルですが、独自に compile.sh というものを用意しました。src配下にソースファイルを配置して compile.sh を実行すると(実行権限をつけてください)、classesフォルダにクラスファイルを生成します。
以下が compile.sh の中身です。サーブレットをコンパイルするために servlet-api.jar へクラスパスを通しています。
#!/bin/bash export CLASSPATH="../../../../lib/servlet-api.jar" javac -encoding utf-8 -d ../classes -sourcepath ./ $1
Tool1.java をコンパイルする例です。srcファイル配下で実行してください。
$ ./compile.sh sample01/Tool1.java
実行するとclassesフォルダ配下にsapmle01フォルダ、および、 Tool1.classが自動生成されます。
クラスファイルとURLとの紐づけですが、WebServletアノテーションで設定するか、web.xml にURLを記載するかの方法があります。Tool1.java の中で、@WebServlet(urlPatterns={“/sample01/tool”}) と記載した場合、Tool1.class へのブラウザからのアクセスは以下のようになります。
http://localhost:8080/tools/sample01/tool
WEB-INF配下の libフォルダにはサーブレットが必要なjarファイルを配置しておきます。データベースに接続する際にに必要なJDBCドライバのjarファイルなどです。