今更ながらJavaEE 6のServlet 3.0を試す

いろんなブログですでに言及されていて、車輪の再発明になるけどキニシナイ。


今回はNetBeans6.7rc2とGlassfish3 previewを使います。

rc2なのは、画像撮ったのがrc3リリース前だったから。
まずはGlassfish3用のPluginをインストールします。
対象のPluginを選択してインストールするだけ。

次に新規プロジェクトを作成。今回は普通のWebプロジェクトとして作ります。
プロジェクト名はデフォルトのWebApplication1で。

サーバをGlassfish3、対象のJavaEEJavaEE 5.0にします。


後は、Servletクラスを作るだけ。
ソースはこんな感じ。

package action;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns = "/test",name="AppServ")
public class SampleServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse res)
            throws IOException {
        res.setContentType("text/html;charset=UTF-8");
        PrintWriter writer = res.getWriter();
        writer.println("<html>");
        writer.println("<body>");
        writer.println("Servletテストだよ");
        writer.println("</body>");
        writer.println("</html>");
    }
}

@WebServletアノテーションにurlPattersを指定することで、
web.xmlを設定しなくても、指定したurlでアクセスすれば対象のServletに飛ぶようになります。
今回は、〜/WebApplication1/testにアクセスすればOK。

ちなみにこの設定だと/test/1とかにアクセスすると404エラーになります。
/test/*と設定すると、/test/a/b・・・・と入力しても
指定のServletに飛ばせるようです。

EJBに関しては私自身よく分かっていないので、また今度の機会に。