C言語やRubyなど、システム開発やアプリ開発に必須となるプログラミング言語には数多くの種類が存在します。
このプログラミング言語には、言語ごとにシステム開発を助けるフレームワークが存在しますが、中でもJavaエンジニアが愛用するケースの多い「JSF」をご存知でしょうか。
今回は、JSFの基礎知識や具体的な用途などを詳しく紹介致します。
目次
システム開発会社選びはプロにお任せ完全無料で全国5000社以上からご提案
そもそもJava EEとは?
JSFの紹介をする前に、JavaとJava EEについて簡単に紹介しておきましょう。
Javaとはプログラミング言語の一種で、幅広いシステム開発に使用される汎用性の高さと安定性がある言語です。有名なWebサービスとしてTwitterやEvernoteなどはJavaで作られています。障害の発生によってサービスが止まってしまっては困るので、安定性の高いJavaが選ばれているというわけです。
Java EE(ジャバ イーイー)とは、「Java Platform, Enterprise Edition」が正式名称で、安定性の高いプログラム言語Javaを用いて企業向けのWebアプリケーション開発用の機能をセットにしたものです。Java EEはWebアプリの開発のプラットフォームとして、安定感と処理速度の速さに優れるという特徴を持ち、ホテルの予約サイトやECサイト、SNSなどの大規模なサイトで使われています。
より端的にまとめれば、
Javaは、大規模システムの開発を得意とする人気の高いプログラミング言語で
Java EEは、Javaを使ったWebアプリの開発のプラットフォーム
という認識でも良いでしょう。
ちなみに、Java EEは2018年2月を境に「Jakarta EE」へ名称が変更されています。これは、Java EEを管理していたOracleが、管理権限をEclipse Foundationに移管したためです。JavaはOracleの商標登録のため、移管と同時に「Java」という名称が使えなくなり、Java EEの名前も変更されたというわけです。便宜上、当コンテンツではJava EEとして記述しています。
JSF(JavaServer Faces)とは
JSFとは、Java EEに搭載されたJava言語におけるフレームワークの一種です。
ここで言うフレームワークとは、言わば「システム開発を助けるツール群」のことです。JSFを利用することで簡単に高性能なWebアプリのインターフェースが作成可能となります。JSFは自分でプログラムするのではなく、ツールによるWebアプリの作成を意識しています。Javaの環境で使用できるフレームワークには、このほかにも「Play Framework」、「Wicket」などがあります。
JSFとJSPとは何が違う?
JSFの用途や機能を紹介する前に、JSFとしばしば混同される「JSP」との違いを解説しておきましょう。
JSP(Java Server Pages)とはWebページの中にJavaプログラムを記述する言語です。アクセスを要求されるとプログラムが実行されます。JSFよりも細かい分岐選択が可能です。しかし、1つのページの中にHTMLとJSPタグによるプログラムの記載があるため、見る人によっては未整理で雑然とした印象を受けます。そこで、「もっときれいにデザインと処理を分けて作りたい」という人のために登場したフレームワークのひとつがJSFなのです。
端的に言えば、JSPの欠点を改良して誕生したのが、フレームワークのJSFという認識でも構いません。
JSFは何に役立つの?
JSFは、WebアプリケーションのUI(ユーザーインターフェース)作成のために設計されているため、コンポーネントベースで開発するものとなっています。送信やキャンセルなどのボタン、複数から選べるセレクトボックス、文字入力のテキストフィールドを作るうえでは、JSFの存在が役立つでしょう。
同じJavaのフレームワークの中でも知名度の高い「Struts」と同じく、MVCモデルを採用しているのもJSFの大きな特徴です。
-
モデル(Model):データベースとのやり取りを担う機能
-
ビュー(View):ブラウザへの表示を行う機能
-
コントローラー(Controller):全体の制御を担う機能
MVCとは、上記3つの概念で設計されているフレームワークのことで、それぞれが独立をしている分、エンジニアごとに分業をしてシステム開発が行いやすいという特徴があります。
JSFに搭載されている機能とは?
JSFには、主に以下の機能が搭載されています。
機能 | 簡単な解説 |
---|---|
UIコンポーネント | フォーム入力欄を簡単に作成する機能 |
バリデーション | 名前やメールアドレスなどの入力ミスをチェックする機能 |
ステート管理 | エラー発生後にユーザーの再入力の手間を省く機能 |
ナビゲーション機能 | ページ移動の設定を楽に行う機能 |
国際化 | 他言語への切り替えがユーザーの手で可能となる機能 |
データコンバージョン | 入力された値をJavaの型に変換する機能 |
●UIコンポーネント
JSFはUIコンポーネントを使用するためのタグが用意されているため、フォーム入力欄を容易に作成できます。UIコンポーネントの作成もできて、再利用可能です。次のようにさまざまな種類があります。
-
ボタンやチェックボックスなど基本となるUI構成部品を代表するもの
-
日付入力用カレンダーのように基本構成部品を複合したもの
-
ほかのコンポーネントを内部に格納するもの
コンポーネントは、パラメータである属性を与えることで挙動や外観を変えられます。
●バリデーション
バリデーションとは、名前やメールアドレスなど必須項目が記入されているか、文字数は適当か、などをチェックする機能です。入力値を間違えたまま、そのまま処理に入ってしまうとエラーが発生するので、システム開発におけるチェックは重要です。チェックで不適切だった場合、赤枠で知らせたり、文字で知らせたりすることができます。
●ステート管理機能
ステート管理機能は、ユーザーの再入力の手間を省く機能です。各コンポーネントに保存されたアトリビュートを透過的に保持します。たとえば、ユーザー登録フォームで入力後、何らかのエラーが発生しフォームを再度表示するときに、すでに入力していたデータを表示して再入力の手間を無くすという仕組みです。
●ナビゲーション機能
Webサイトでは必要に応じてホームページへ戻る、ヘルプ情報を表示するなどという操作を行います。JSFのナビゲーション機能はナビゲーション・ルールと呼ばれるページ移動を記述しておき、それを呼び出してページ移動させるものです。設定ファイルに情報を記述するので、後で変更があった場合でも設定ファイルを書き直すだけで済みます。
●国際化
デフォルトの言語だけではなく、英語やフランス語などをユーザーが変更できるように設定できます。その名の通り、多言語に対応したグローバルなWebページを展開したいという際に役立つでしょう。
このほかにも、JSFには入力された値をJavaの型に変換してデータの受け渡しを容易にするデータコンバージョン機能なども搭載されています。
システム開発におけるJSFのメリットは
●直感的なGUIを採用
JSFを活用したGUIツールでは、UIコンポーネントに対応する部品アイコンをドラッグ&ドロップし、各種プロパティを設定するだけでWebページが簡単に作成できます。これは、JSFがクライアント上の対応する入力動作に従って起動するシステムを採用しているためです。
●エンジニアが扱いやすい設計
JSFを使うメリットは、扱いが簡単であることです。ツール化されているため、新しい言語を覚える必要がなく、プログラマーの負担を軽減できます。GUIとの親和性によりWebページのログイン画面などの開発も容易です。
●ユーザーインターフェース開発の生産性向上
これまで個々のプロジェクトやベンダーが開発した各種の定型処理に対して、デフォルトで実装されています。また、カスタムも容易なので、同じような記述を繰り返さずに済みます。
システム開発におけるJSFのデメリットは?
JSFはViewの状態をセッションという場所に保存します。アクセス数が多くなるとセッションを保存するためにセッション領域が大きくなります。
分かりやすく言えば、アクセス数が多いWebアプリケーションにはJSFは不向きです。Javaフレームワークは、セキュリティ上の脆弱性が潜んでいる恐れがあり、Javaフレームワークの一種である「Apache Struts」で見つかったセキュリティホールが攻撃されたケースもあります。脆弱性は構築された利用者にとって不利益になるだけではなく、開発側の信用を落としかねない大きなデメリットです。
JSFはどうやって使うの?
最後に、JSFに必要な環境を準備する方法を紹介しましょう。必要となるのは以下の2つです。
-
Java SE
-
NetBeans IDE
実行環境とコンパイラのJava SEを用いて、開発ツールのNetBeans IDEは、表示するための環境であるウェブサーバーとサーブレットコンテナの役割です。NetBeans IDEはJava EEに対応しているものにしてください。NetBeans IDEをインストールしたら起動し、ファイル新規プロジェクトを実行します。「どのプロジェクトを作るか」という選択肢で「Java Web」、「Webアプリケーション」を選択し、プロジェクトの保存場所を指定していきます。フレームワークの設定について聞かれるので「JavaServer Faces」にチェックすれば設定は完了です。
プロジェクトの「index. xhtmlファイル」が自動生成され、編集できるようになります。
導入方法や基本的な作り方について説明しましたが、導入自体は簡単です。パソコンとインターネット環境があれば、今すぐに導入し、作成に取り掛かれます。ユーザーが選択できるプルダウンメニューや、ワンクリックで選択できるラジオボタン、自由記入可能なテキストエリアなどが設定できますので、実際に作ってみてください。
システム開発の最適な発注先をスムーズに見つける方法
システム開発会社選びでお困りではありませんか?
日本最大級のシステム開発会社ポータルサイト「発注ナビ」は、実績豊富なエキスパートが貴社に寄り添った最適な開発会社選びを徹底的にサポートいたします。
ご紹介実績:22,000件(2024年10月現在)
外注先探しはビジネスの今後を左右する重要な任務です。しかし、
「なにを基準に探せば良いのか分からない…。」
「自社にあった外注先ってどこだろう…?」
「費用感が不安…。」
などなど、疑問や悩みが尽きない事が多いです。
発注ナビは、貴社の悩みに寄り添い、最適な外注探し選びのベストパートナーです。
本記事に掲載するシステム会社以外にも、最適な開発会社がご紹介可能です!
ご相談からご紹介までは完全無料。
まずはお気軽に、ご相談ください。 →詳しくはこちら
システム開発会社選びはプロにお任せ完全無料で全国5000社以上からご提案