Java Servlet 3.0 Specification
Public Review Ballotのフェーズを賛成多数で通過したが、
ASF(Apache Software Foundation)は、反対票を投じている。
しかし、ASFの反対票は技術的な問題ではなく、
政治的な問題によるものだといわれている。
Java Servlet 3.0 機能概要
次期Servletとなる3.0でどういった機能が実現されるのかの概要で、
特に興味深いトピックをまとめると次のとおりである。
- Servlet 3.0 は、現在のServlet 2.5のアップデートバージョンであり、
Java EE 6に取込まれる - Webフレームワークにプラガブル性や拡張性を提供する
- 非同期処理のサポート登場
(JDBC/Wev Service等リソース待ち機能。非同期レスポンス、非同期関連クラス導入) - 新しいアノテーションの導入によるEoDの推進
- 単一のweb.xmlファイルから複数のファイルを含めるweb-fragment.xmlファイルの導入
- HTTPServletRequestを拡張。ログインとログアウトのプログラマティックな処理を実現
- Servletおよびフィルタを追加するメソッドの登場
(ServletContext#addFilter, ServletContext#addServlet)
機能詳細ピックアップ
- プラグインの容易性(Pluggability)
web.xmlのモジュール化(ファイルの分割)
ServletContextにServletとFilterの宣言とマッピングを定義するメソッドが追加 - 開発の容易性(Ease of development)
Servletは、アノテーション@Servletにより定義可能。これにより大幅に記述量を
減らす事ができる。また@GET、@PUTを指定する事で、任意のメソッドをhttpの
GETやPUT時のメソッドに指定する事ができる
FilterとFilterのマッピングについては、@ServletFilterと@FilterMappingの
アノテーションで宣言する事が可能
Context Listnerについても、@ServletContextListnerアノテーションで宣言可能 - 非同期Servletのサポート(Async servlet support)
非同期Servletは、Cometスタイルのアプリケーションや、非同期Webプロキシー、
非同期Webサービスでの利用が想定されており、requestのsuspendや
resumeを可能にする。ServletRequest、RequestListner、ServletResponseへ
非同期メソッドの追加 - セキュリティのエンハンス(Security enhancements)
セキュリティとして、ログイン、ログアウトを可能にするため、loginとlogoutのメソッド
を次のクラスに追加する。HttpServletRequest 、HttpServletRequestWrapper、
HttpSession (logout only) - HttpOnlyCookieのサポート
クライアントサイドスクリプティングからのcookieへのアクセスを防ぎ、また、
クロスサイトスクリプティング攻撃を防ぐ - session tracking cookieの設定を可能
session tracking cookieの設定を可能にし、多数のsession trackingの
サポートも行う
ドキュメント、API
Servlet 3.0 の草案段階にあるAPIマニュアルと解説ドキュメントはJSR 315 から
ダウンロードできるようになっている。