JSFはJavaに活用されるオープンソースWebアプリケーションフレームワークです。2006年からJavaEEの一部として統合されており、JavaEE純正のフレームワークとして有名です。Javaフレームワークと向き合う上でJSFを知らずにはいれません。この記事ではJSFを理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説していきます。
JSF(Java Server Faces)とは、Javaに活用されるOracle社によって開発されたWebアプリケーションフレームワークです。Strutsと同様にMVCと呼ばれるソフトウェア設計モデルが採用されております。その特徴はWebアプリケーションのユーザインターフェースの作成のために活用され、コンポーネントベースで開発するものとなっております。JSFの仕様はJavaEEJava EE(Java Platform, Enterprise Edition)の一部として取り込まれています。
JavaとはOracle社が開発・提供するオブジェクト指向のプログラミング言語です。1995年にサン・マイクロシステムズ(後にOracle社が買収)のジェームス・ゴブリン氏によって開発されリリースとなりました。プログラミング言語の発展に大きな影響をもたらしたC言語を元に開発されたことでも有名です。当時、最も人気を集めていたC言語はオブジェクト指向ではありませんでした。Javaの登場によってオブジェクト指向が主流の時代が訪れたと言われております。Javaのキャッチコピーは「Write once, run anywhere」で直訳すると「一度書けば、どこでも実行できる」という意味があります。このことからも分かるようにJavaの特徴は『オブジェクト指向の先駆者』で『どこでも動く』ということらが挙げられます。世界中で最もポピュラーで多くのWebアプリケーションで採用されていることで知られております。
『Javaにおけるシステム開発を簡単に行えるように用意された枠組みのこと』
JavaフレームワークとはJavaにおけるシステム開発のプログラミングを効率的に実施するために汎用的な機能群をまとめ、システムの骨組みとなるテンプレートまで用意してくれる枠組みのことです。フレームワークを活用することでプログラミングにおける記述コードを最小限に抑えることが出来ます。Javaフレームワークの代表的な種類としてStruts、Spring、JSFなどが挙げられます。
Javaフレームワーク人気どころ7選ついて解説された記事はこちら>>
JSFの読み方は『ジェイエスエフ』です。正式名称は「JavaServer Faces」ですが、一般的にはJSFと略した名で浸透しております。名前の由来は調査したところ出てきませんでした。
JSFはJavaを開発するOracle社によって開発、管理されているオープンソースWebアプリケーションフレームワークです。2004年3月に『JSF 1.0』最初のリリースをしました。2006年になるとJava EEの一部として組み込まれ統合される形になりました。
2009年6月には『JSF 2.0』をリリースし、使いやすさの改善や機能の追加、パフォーマンスの向上を実現しました。2013年にリリースした『JSF 2.2』では完全な「ステートレス・モード」が導入され、ステートはさらに重視されない形となりました。2017年には『JSF 2.3』をリリースし、Java EE 8 に含まれることとなります。簡単に以下の年表にまとめておりますのでご覧ください。
年代 | 内容 |
2004年3月 | JSF 1.0 初版リリース |
2004年5月 | JSF 1.1 細かなバグを修正し、リリース |
2006年5月 | JSF 1.2 Java EE 5に統合 |
2009年6月 | JSF 2.0 使いやすさの改善や機能の追加、パフォーマンスの向上 |
2010年10月 | JSF 2.1 細かなバグを修正し、リリース |
2013年5月 | JSF 2.2 「ステートレス・モード」が導入され、ステートはさらに重視されない形 |
2017年4月 | JSF 2.3 Java EE 8 に含まれる |
JSFの特徴を見ていきましょう。
JSFは、JavaプログラムをModel(モデル)、View(ビュー)、Controller(コントローラ)の3つの役割に分けて記述するように設計されているというMVCを採用しているという特徴があります。このようにMVCを採用していることで実装部分における作業負担を軽減することができます。
MVCモデルの歴史、特徴などについて解説された記事はこちら>>
JSFはUIコンポーネントを使用するためのタグが用意されているという特徴があります。これによってタグを使って簡単にフォーム入力欄が作れるなどのメリットがあります。
JSFはFaceletsというJSFのために作られたWebエンジンテンプレートを使用しているという特徴があります。JSF2.0以降JSPに変わってこちらのFaceletsが使用されるようになりました。XMLベースのテンプレート(xhtml)をSAXベースコンパイラで処理するため、JSPと比較して高速にページ生成ができます。
JSF以外のJavaによるシステム開発に用いられる代表的なフレームワークを紹介させていただきます。
StrutsとはJavaに活用されるクレイグ・マクラナハン (Craig McClanahan)氏によって開発されたオープンソースアプリケーションフレームワークです。Javaにおけるフレームワークの中で最も知名度が高いのではないでしょうか。StrutsはMVCと呼ばれるソフトウェア設計モデルが採用されております。その特徴は画面とデータベースの開発を分離し、モジュール単位での開発を実現させたことにあります。主なStritsの種類(バージョン)としてStruts、Struts2が挙げられます。
Play FrameworkとはJavaとScaraの2つのプログラミング言語でZenexity社のプログラマーギヨーム・ボルト(Guillaume Bort)氏によって開発されたオープンソースのWEBアプリケーションフレームワークです。Play FrameworkはRuby on Railsからの影響を強く受けたフレームワークとして有名です。その特徴として軽量で動きが速いという点が挙げられることから度々Webサービスの開発などにおいて好まれて利用されております。
Play Frameworkの公式サイトはこちら>>
Play Frameworkの歴史や特徴、基礎知識について解説された記事はこちら>>
SpringとはJavaに活用されるロッド・ジョンソン(Rod Johnson)氏によって開発されたオープンソースアプリケーションフレームワークです。Javaにおけるフレームワークの中でも長い歴史を持ち、世界中のシステム開発に利用されております。Springの特徴は様々なプロジェクトと呼ばれるライブラリの集合体で形成されており、開発者が用途に合わせて必要なライブラリを活用するという特徴があります。そのため非常に柔軟性が高いフレームワークとして親しまれております。主なSpringの種類としてSpringBoot、SpringDate、SpringSecurityなどが挙げられます。
JSFを理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説させていただきました。JSFを一言で表すと『JavaEE純正のフレームワーク』です。「MVC」「UIコンポーネント」「Facelets」などの特徴が挙げられます。JSFについてこの記事に書かれている最低限の内容は理解をしておくようにしましょう。