@WebServletアノテーション

前回の記事で作成したサーブレットはWebブラウザから下記URLにアクセスすることで実行されました。

http://localhost:8080/HelloWorld_PJ01/HelloWorldServlet

このようにサーブレットは、WebブラウザからURLや、Webページの中のリンクにURLを指定して呼び出します。

そのURLは、Eclipseのプロジェクト名とサーブレットの@WebServletというアノテーションと関連付きます。

URLで指定して呼び出す場合

http://サーバホスト名:ポート番号/Eclipseプロジェクト名/@WebServletアノテーション

  ※ポート番号は省略できます。省略した場合はポート番号は80となります。

Webページの中のリンクから呼び出す場合

<a href="Eclipseプロジェクト名/@WebServletアノテーション">Click Here</a>

フォームから呼び出す場合

<form action="Eclipseプロジェクト名/@WebServletアノテーション" method=post>

@WebServletアノテーションはServlet3.0から利用できるようになった機能です。

それまでのServlet2.5以前は、web.xmlに<url-parttern>を記述することで指定していましたが、
Servletは3.0になってからアノテーションを利用することでServletの設定が単純になりました。

@WebServlet使用例

前回は@WebServletを以下のように設定しました。

@WebServlet("/HelloWorldServlet")
public class HelloWorldServlet extends HttpServlet {

@WebServletには以下のような属性を設定できます。

@WebServletの属性

属性名 説明
name サーブレット名を設定する
description サーブレットの説明を設定する
displayName 表示名を設定する
initParams サーブレットの初期パラメタを設定する
smallIcon GUIツールで使用する小アイコンを設定する
largeIcon GUIツールで使用する大アイコンを設定する
loadOnStartup サーブレットの開始順序を設定する
urlPatterns マッピングするURLパターンを設定する
value マッピングするURLパターンを設定する(urlPatternsと同時に設定した場合は無効)

例えば、URLを複数指定したい場合は、下記のように記述します。

@WebServlet(urlPatterns = {"/HelloWorldServlet", "/HelloServlet", "/HELLO"})
public class HelloWorldServlet extends HttpServlet {

このようにweb.xmlにサーブレットマッピングを書く必要があったServlet2.5以前と比べ、設定は単純になりました。
ただ、アノテーションはソースコード上に記述することになるので、各種設定は外出しして記述したいというケースも多く、ソースコード管理等の理由で、今でもweb.xmlを利用しているところも多いです。