去る2011年1月に「Tomcat 7」が安定版としてリリースされました。ご存じの方が多いかと思いますが、Tomcatは、Apache Software FoundatonのApache Tomcatプロジェクトで開発されているサーブレット/JSPコンテナです。
Tomcatは長い歴史のあるオープンソースプロダクトで、10年以上の間、多くのバージョンアップが行われ、現在も開発が継続しています。
Tomcat 6の機能について知りたい読者は、下記記事を参照してください。
“安全”のためにTomcatを理解し、構築し、動作させる
Tomcatはどこまで“安全”にできるのか?(1) そもそもTomcatとは何か、最新版で何が変わったのかを紹介し、環境構築や自動起動の仕方、Apacheとの連携も解説する
「Java Solution」フォーラム 2007/10/11
そんなTomcatが前回のメジャーバージョンであるTomcat 6から約4年ぶりにTomcat 7を安定版としてリリースしました。
Tomcat 7では、Tomcat 6に対して実装するサーブレット/JSP仕様のバージョンアップとTomcat独自のさまざまな機能の追加・改善を行っています。
実装する仕様は、以下のバージョンにアップデートされました。
本連載では3回の連載を通して、Tomcatの最新メジャーバージョンであるTomcat 7について説明します。第1回目と第2回目でServlet 3.0を紹介し、第3回目でTomcat独自の新機能を紹介する予定です。
第1回目となる今回は、Tomcat 7が実装したServlet 3.0について説明します。Servlet 3.0とはJSR-315のことを指します。Tomcatは、このJSR-315仕様を実装しています。
Servlet 3.0では、Servlet 2.5に対して主に、次のような仕様変更を導入しました。
今回と次回で、Servlet 3.0で導入された新仕様について、順に説明していきます。
まずは、Servlet 3.0の主要なテーマの1つであるEoDです。
Servlet 3.0では、EoDとして「Annotation based configuration」を新しく定義しました。アノテーションを利用することでServletの開発が簡単になります。
では、簡単なサンプルを使って紹介していきます。
Servletを利用する場合、従来のTomcat 6.0.x、Servlet 2.5以前の場合では、まず以下のようにサーブレットを作成します。
public class WebServletTest extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.getWriter().print("HELLO!");
}
}
そして、作成したサーブレットをweb.xmlにマッピングします。
<servlet>
<servlet-name>WebServletTest</servlet-name>
<servlet-class>test.annotation.WebServletTest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WebServletTest</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
これにServlet 3.0で導入した「Annotation based configuration」を利用すると、「@WebServlet」というアノテーションを付加するだけでOKです。
@WebServlet(name="WebServletTest",urlPatterns={"/test"})
public class WebServletTest extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.getWriter().print("HELLO!");
}
}
次ページでは、さらにアノテーションを紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.