JavaでWebアプリケーションを実装する場合、
appサーバーとして、tomcatなどを利用すると思います。
フレームワークによって設定ファイルは異なりますが、
tomcatを利用する場合、urlに対応して起動するサーブレットの設定などは、web.xmlで行います。
今回は、servlet ver2.3での、web.xmlの最低限必要な設定をまとめておきたいと思います。
設定対象プロジェクト
まず、対象プロジェクトは、以下とさせて頂きます。
存在するファイルは、web.xmlの他には、jsp1つとservlet1つです。
HelloWorldを表示させるだけの非常にシンプルなプロジェクトです。
プロジェクト実行結果
実行結果も、簡単なhtml表示とコンソールログを出力するだけの内容となります。
web.xml設定内容
結論ですが、今回のプロジェクトの内容の場合、web.xmlは、以下の様に設定します。
<?xml version="1.0" encoding="UTF-8"?> <web-app> <servlet> <servlet-name>helloworld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>helloworld</servlet-name> <url-pattern>/Helloworld</url-pattern> </servlet-mapping> </web-app>
1、xmlタグ
<?xml version="1.0" encoding="UTF-8"?>
一番初めのxmlタグは、バージョンとエンコード指定を行います。
ただし、上記の記述方法は、J2EE2.3の表記方法(DTDベース)であり、
J2EE2.4以降からは、XMLSchemaベースへと変更されている模様です。
しかも、各バージョンで細かく指定名称が異なっているようです。
◯参考:KATSUMI KOKUZAWA’S BLOG – web.xmlのバージョン別DTD・XSDの宣言方法 –
※servlet3.0の例
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://java.sun.com/xml/ns/javaee" xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="3.0">
2、web-appタグ
<web-app>
基本的に、案件単位でプロジェクトを作成する場合、
一つのweb-appタグ内に、全ての情報を組み込むことになると思います。
3、servletタグ
3−1、servlet-nameタグ・servlet-classタグ
<servlet-name>動作させるサーブレット名</servlet-name> <servlet-class>動作させるサーブレットクラス名</servlet-class>
記載方法として、/プロジェクト名/src/をカレントディレクトリと想定した、
相対パスで記載を行う必要があります。
4、servlet-mappingタグ
4−1、servlet-nameタグ・url-patternタグ
<servlet-mapping> <servlet-name>helloworld</servlet-name> <url-pattern>/Helloworld</url-pattern> </servlet-mapping>
servlet-nameタグには、動作するサーブレット名を指定し、
url-patternには、サーブレットをcallするためのurlを指定します。
尚、url-patternの前の名前空間は、Webコンテナ名称になるため、
今回のプロジェクトの場合、WebSample01になります。
◯参考情報
・Apache Tomcat 8.5.65 – Default Servlet Reference –
・oracle – Java™ EE at a Glance –
尚、当たり前ですが、既存のファイルと同様に、
新しいHelloWorld.java(サーブレット)と、jspを同じ配置で作成した場合、
以下のようにweb.xmlに行うことが可能です。
<?xml version="1.0" encoding="UTF-8"?> <web-app> <servlet> <servlet-name>helloworld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>helloworld</servlet-name> <url-pattern>/Helloworld</url-pattern> </servlet-mapping> <servlet> <servlet-name>helloworld2</servlet-name> <servlet-class>HelloWorld2</servlet-class> </servlet> <servlet-mapping> <servlet-name>helloworld2</servlet-name> <url-pattern>/Helloworld2</url-pattern> </servlet-mapping> </web-app>
以上が、最低限のweb.xmlの設定内容になります。
web.xmlは正しく設定しないと、ハマりどころになるため、
修正を行う際には、注意して行いたいところです。