JSPからJSFへ!


既に皆さんは、JSPとサーブレットによるサーバサイドJavaの基本について、ほぼ理解していることと思います。JSPやサーブレットを使ってみて、どういう感想を持ったでしょうか。「すばらしい!」と思った人もいるでしょうが、「意外と面倒なんだな……」と感じた人も、きっといたはずですね。

特にJSPを使ってWebページを作成した人の多くは、「どことはいえないが、なんとなく便利そうに思えない。なんとなく使いにくい感じがする」という印象をもたれた人も多いんじゃないでしょうか。実際、いくつかJSPでページを書いてみると、なんとなく「面倒な感じ」がしてしまうものです。ページ全体を設計したり、後で手直ししたりするとき、その印象はますます強まります。

この「JSPが面倒そうに感じる」最大の理由は、1つのページの中に、HTMLによるデザインとJSPタグによるプログラム部分とがごちゃごちゃ~っと書かれていることでしょう。ぱっと見ても、画面のレイアウト部分と、処理を行うコード部分とが判然としません。なんとなく未整理で雑然とした感じになってしまいます。

もっときれいにデザインと処理を分けてわかりやすく作りたい。そういう人のために登場したのが「フレームワーク」です。「Struts(ストラッツ)」という名前、どこかで聞いたことがありませんか? これが、Webアプリケーションのフレームワークの代表的なものです。このフレームワークの重要性が認識されるにつれ、Javaにも標準でフレームワークを用意すべきだ、という認識が生まれました。そうして登場したのが「Java Server Faces(JSF)」なのです。

JSFは、JSPとBeanで構成されている。JSPには画面のデザインだけが置かれ、実行する処理は管理用のBeanに用意される。

JSFでは、プログラムは「JSP」と「管理用Beanクラス」に分かれています。JSPには、画面表示のデザインだけが記述されます。これも、単純なHTMLなどでなく、JSFに用意されているGUI用のカスタムタグを使って構築されます。

プログラム部分は、すべて管理用のBeanクラスに置かれます。JSPからサーバに送信がされると、この管理用Beanクラスにある処理が必要に応じて呼び出され、処理された結果が送り返されます。

JSPとBeanは非常に密接につながっています。JSFには、JSPからBeanにあるメソッドやフィールドの機能を結びつける機能が用意されており、必要な値や処理などはすべてBeanにあるものをJSPの中に関連付けて記述をすることができます。そうすることで、JSPの中からプログラム的な処理を完全に排除しているのです。