Servlet/JSP基礎編03 WEB.xmlとサーブレット
web.xmlを使用する
web.xmlとは、Webアプリケーションの動作設定を行うファイルである。
サーブレットのURLや初期化パラメータを記述できたり、フィルタの各種設定などが可能となっている。サーブレットのURLは前の記事で紹介したWebServletアノテーションと同じものである。
小さなアプリケーションであるなら、WebServletアノテーションが楽であるが、しかし、逆にたくさんのサーブレットを持つ場合はweb.xmlを使用して管理したほうが楽である。
今回のプログラムに使用するweb.xmlを実際に作成した。
このweb.xmlの上半分はどのxmlでも共通する部分のため、特に解説しない。
重要になってくるのは、<servlet>と<servlet-mapping>で囲まれている部分である。
<servlet-name>はサーブレットを指定するための名前である。
<servlet-class>は作成するプログラムのクラスを記述する場所で「パッケージ名・クラス名」で指定する。
<url-pattern>はWebServletアノテーションと同じものを記述すればよい。
Hello3.javaプログラム
このプログラムでは、サーブレットの特徴である、Javaプログラムの中にHTMLを記述していきたいと思う。
ブラウザに「hello」「こんにちは」と日時を表示するプログラムとする。
このプログラムは」3つのファイルから構成する。理由として、今後もサーブレットを作るうえで、共通する部分を毎回記述するよりは、共通部分だけを別のファイルとして作成しておけば、次回からはインポートするだけで1行で何行分も表現できる。
なので、「Page」クラスを作成した。このクラスでは、headerメソッドと、footerメソッドを記述している。内容は以下のとおりである。
特に難しいことは記述しておらず、HTMLを書いたことがある方なら見たことがあると思う。この部分はどのHTML文書でも記述しないといけないので、このように一つにまとめておけば、かなり楽になる。
では、Hello3プログラムを載せる。
doGetメソッドの中身を見てほしい。
setContentTypeで、レスポンスのMIMEタイプやエンコーディングを指定している。前の記事のプログラムでは、MIMEが「plain」となっていたが、今回はHTMLとして、渡すので、「html」と書いた。
そして、最も重要となるのは、Page.headerからである。共通部分はPageクラスに記述しているので、このような形で小さくまとめることができる。
あとは、printlnメソッドの中に<p>タグで、表示したい内容を書き込めばよい。
実際にコンパイルして、表示された内容が以下である。
Hello!
こんにちは
Mon Aug 24 05:36:42 JST 2020
問題なく、HTML文書として処理されているので、<p>タグはブラウザに表示されていないことが分かる。