前回の記事で作成したサーブレットは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を利用しているところも多いです。