Servlets-annotations
サーブレット-注釈
これまで、ServletがアプリケーションをWebサーバーにデプロイするためにデプロイメント記述子(web.xmlファイル)を使用する方法を学びました。 サーブレットAPI 3.0では、javax.servlet.annotationという新しいパッケージが導入されました。 サーブレットクラスに注釈を付けるために使用できる注釈タイプを提供します。 注釈を使用する場合、デプロイメント記述子(web.xml)は必要ありません。 ただし、tomcat7またはそれ以降のバージョンのtomcatを使用する必要があります。
アノテーションは、サーブレット宣言やサーブレットマッピングなど、Webデプロイメント記述子ファイル(web.xml)の同等のXML構成を置き換えることができます。 サーブレットコンテナは、デプロイメント時にアノテーション付きクラスを処理します。
サーブレット3.0で導入された注釈タイプは次のとおりです-
Sr.No. | Annotation & Description |
---|---|
1 |
@WebServlet サーブレットを宣言します。 |
2 |
@WebInitParam 初期化パラメーターを指定します。 |
3 |
@WebFilter サーブレットフィルターを宣言します。 |
4 |
@WebListener WebListenerを宣言するには |
5 |
@HandlesTypes ServletContainerInitializerが処理できるクラスタイプを宣言するため。 |
6 |
@HttpConstraint このアノテーションは、ServletSecurityアノテーション内で使用され、対応するHttpMethodConstraint要素がServletSecurityアノテーション内で発生しないすべてのHTTPプロトコルメソッドに適用されるセキュリティ制約を表します。 |
7 |
@HttpMethodConstraint このアノテーションは、特定のHTTPプロトコルメッセージのセキュリティ制約を表すためにServletSecurityアノテーション内で使用されます。 |
8 |
@MultipartConfig サーブレットのインスタンスがmultipart/form-data MIMEタイプに適合するリクエストを期待していることを示す、サーブレットクラスで指定できる注釈。 |
9 |
@ServletSecurity このアノテーションは、サーブレット実装クラスで使用され、HTTPプロトコルメッセージでサーブレットコンテナによって実施されるセキュリティ制約を指定します。 |
ここで、いくつかの注釈について詳しく説明しました。
@WebServlet
@WebServletは、コンテナを使用してサーブレットの構成を宣言するために使用されます。 次の表には、WebServletアノテーションに使用される属性のリストが含まれています。
Sr.No. | Attribute & Description |
---|---|
1 |
String name サーブレットの名前 |
2 |
String[] value URLパターンの配列 |
3 |
String[] urlPatterns このフィルターが適用されるURLパターンの配列 |
4 |
Int loadOnStartup 整数値は、起動順序のヒントを提供します |
5 |
WebInitParam[] initParams このサーブレットの初期化パラメータの配列 |
6 |
Boolean asyncSupported このサーブレットがサポートする非同期操作 |
7 |
String smallIcon このサーブレットの小さなアイコン(存在する場合) |
8 |
String largeIcon このサーブレットの大きなアイコン(存在する場合) |
9 |
String description このサーブレットの説明(存在する場合) |
10 |
String displayName このサーブレットの表示名(存在する場合) |
少なくとも1つのURLパターンは、アノテーションの value または urlPattern 属性のいずれかで宣言する必要がありますが、両方ではありません。
例
次の例では、@ WebServletアノテーションの使用方法を説明します。 テキスト Hello Servlet を表示する単純なサーブレットです。
通常の方法で Simple.java をコンパイルし、クラスファイルを<Tomcat-installationdirectory>/webapps/ROOT/WEB-INF/classesに配置します。
_http://localhost:8080/Simple_を実行するだけで、サーブレットの呼び出しを試みます。 Webページに次の出力が表示されます。
@WebInitParam
@WebInitParamアノテーションは、サーブレットまたはフィルターの初期化パラメーターを指定するために使用されます。 WebFilterまたはWebSevletアノテーション内で使用されます。 以下の表には、WebInitParamアノテーションに使用される属性のリストが含まれています。
Sr.No. | Attribute & Description |
---|---|
1 |
String name 初期化パラメーターの名前 |
2 |
String value 初期化パラメーターの値 |
3 |
String description 初期化パラメーターの説明 |
例
次の例では、@ WebServletアノテーションとともに@WeInitParamアノテーションを使用する方法を説明します。 これは、 init パラメーターから取得されたテキスト Hello Servlet およびストリング値* Hello World!*を表示する単純なサーブレットです。
通常の方法で Simple.java をコンパイルし、クラスファイルを<Tomcat-installationdirectory>;/webapps/ROOT/WEB-INF/classesに配置します。
_http://localhost:8080/Simple_を実行するだけで、サーブレットの呼び出しを試みます。 Webページに次の出力が表示されます。
@Webfilter
これは、サーブレットフィルターの宣言に使用される注釈です。 展開時にコンテナによって処理され、対応するフィルターが指定されたURLパターン、サーブレット、およびディスパッチャタイプに適用されます。
Sr.No. | Attribute & Description |
---|---|
1 |
String filterName フィルターの名前 |
2 |
String[] urlPatterns フィルターが適用される値またはurlPatternsの配列を提供します |
3 |
DispatcherType[] dispatcherTypes フィルターが適用されるディスパッチャーのタイプ(要求/応答)を指定します |
4 |
String[] servletNames サーブレット名の配列を提供します |
5 |
String displayName フィルターの名前 |
6 |
String description フィルターの説明 |
7 |
WebInitParam[] initParams このフィルターの初期化パラメーターの配列 |
8 |
Boolean asyncSupported このフィルターでサポートされる非同期操作 |
9 |
String smallIcon このフィルターの小さなアイコン(存在する場合) |
10 |
String largeIcon このフィルターの大きいアイコン(存在する場合) |
例
次の例では、@ WebFilterアノテーションの使用方法を説明します。 Init-param test-param の値と現在のタイムスタンプをコンソールに表示するシンプルなLogFilterです。 つまり、フィルターは要求と応答の間のインターフェイス層のように機能します。 ここでは、urlPatternに「/*」を使用します。 つまり、このフィルターはすべてのサーブレットに適用できます。
通常の方法で Simple.java をコンパイルし、クラスファイルを<Tomcat-installationdirectory>/webapps/ROOT/WEB-INF/classesに配置します。
_http://localhost:8080/Simple_を実行するだけで、サーブレットの呼び出しを試みます。 Webページに次の出力が表示されます。
次に、サーブレットコンソールを開きます。 そこには、 init パラメーターの値 testparam および* currentタイムスタンプ*がサーブレット通知メッセージとともに表示されます。