Play Framework
他のJavaフレームワークと比べると、以下のような特徴を持つ
ステートレス: Play 2は完全にRESTfulである。Jakarta EEのように接続ごとのセッションを利用しない。
自動テストの統合: JUnit, Seleniumのサポートを含む。
主に必要とされるAPIは標準で組み込まれている。
静的メソッド: コントローラの全ての開始点はstatic(Scalaの場合はfunction)として宣言する。ただしPlay 2.1以降はそれ以外の形式もサポートされている。
非同期IO: WebサーバーとしてNettyを使用することから、Playは非同期的に大きなリクエストを処理できる。この結果、HTTPスレッド数以上の処理を実行することができる。Jakarta EEでは、Servlet 3.0までこうした非同期処理はサポートされていなかった。
モジュラー構造: RailsやDjangoのように、Playはモジュール構造を採用している。
Scala言語のサポート: Play 2は内部的にScalaを使用しており、ScalaのAPIとJavaのAPI双方を公開している。Javaとも完全な互換性がある。