Javaに関する様々な情報をご紹介します。

14アノテーション

Javaに関する様々な情報をご紹介します。

アノテーション

ここでは、Servlet3.0から導入されたServlet用のアノテーションについて解説します。アノテーションを利用することにより、これまでweb.xmlに記述していた設定値を、直接プログラムに記述できるようになります。

実行環境
  • ・Windows8.1 Pro
  • ・JDK 1.8.0_05
  • ・Tomcat 8.0.12

アノテーションの種類

よく利用されるアノテーションを以下に記載します。

アノテーション 説明
@WebServlet。 ServletクラスとそれにアクセスするURLパターンを定義します
@WebFilter フィルタクラスを定義します。
@WebListener リスナークラスを定義します。
@WebInitParam Servletクラスごとの初期化パラメータを定義します。
@ServletSecurity ログイン処理に関連するセキュリティ制約を定義します。
@MultipartConfig multipart/form-dataデータを扱う際の保存ディレクトリ、ファイル・リクエストの最大サイズなどを定義します。

アノテーションを使用することで、これまで、web.xmlで定義していた設定値を直接プログラムに記載できるようになります。共通の設定はweb.xmlに記載し、クラス独自のふるまいはアノテーションに記載という対応ができるようになります。
web.xmlとアノテーション両方に設定値が記載されている場合はweb.xmlの方が優先されます。

使用例

@WebServletの例

@WebServletを利用して、これまでweb.xmlに記載していたServletクラスとそのクラスにアクセスするためのURLマッピングをプログラム内に記載する方法を例示します。

【ShowDateServlet.java】アクセスすると現在の日付を表示するプログラムです。

package pack;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//(1)Servletクラスの名称を「ShowDate」とし、URLパターンを「/ShowDate」とした場合の設定例です。
//  URLに/ShowDateを指定することでServletクラスにアクセス可能です。
@WebServlet(name = "ShowDate", urlPatterns = { "/ShowDate" })

public class ShowDateServlet extends javax.servlet.http.HttpServlet
            implements javax.servlet.Servlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("");
        out.println("");
        out.println(new java.util.Date());
        out.println("");
        out.println("");
    }
}

「http://localhost:8080/WebHello/ShowDate」でServletクラスにアクセスし、現在の日時が表示されていることが確認できます。

Servlet_アノテーション_1

14アノテーション