web-dev-qa-db-ja.com

Java EE vs JSP vs JSF

Webアプリケーションを開発するためのJavaテクノロジーを学びたいと思っています。これを詳しく見ると、 jsfjsp 、および javaee 。SO( post 1post 2 )にいくつかの投稿があることを知っていますこれらの混乱を解決するために、私はそれらの上にさらにいくつかあります:

  1. JSPはJSFを支持して「死んだ」のですか?
  2. Java EE JSFがプラットフォーム上で実行されるのか、まったく異なるものですか?
  3. JSFは、単にWebアプリケーションを開発するためのMVCフレームワークですか?
  4. JSFは、Oracleによって開発されたフレームワークであり、Javaの一部ですか、それともまったく別のフレームワークですか(Zend FramworkがPHPからのものであるかのように)。
  5. [ボーナス] jsp または jsf の学習をお勧めしますか?

あなたの答えでは、これらの技術をASP.NET、ASP.NET MVC、Ruby on Rails、Zend Framework、またはregular-old Javaアプレット。これらはすでによく知っているものです。

お時間をいただきありがとうございます。

30
Oliver Spryn

JSPはJSFを支持して「死んだ」のですか?

JSFには、JSPよりも多くの利点があります。例えば:

  • MVCアプローチを定義します
  • コンポーネント化標準を設定しました
  • 値の適用機能があります
  • 組み込みAJAX
  • 定義されたビューコンテキストコントロール
  • Primefacesのような豊富なインターフェース拡張が可能

そして、私たちは続けていくことができます。

特定の柔軟性やパフォーマンスを必要とする他のシナリオでJSPを使用することはできますが、サーブレットについても同じことができますが、JSFは「堅牢な」アプリケーションのJSPをほぼ置き換えました。

今、私はJSFの大ファンですが、まだまだ先があります。 JSF 2.2は、定義されたナビゲーション標準(- FacesFlow )を持ち、成熟したフレームワークのように見えます。 2.1の組み込みファイルアップローダーであり、AJAXでさえありません。また、「HTML5」などもあります。ですから、ここでは詳細に説明しません。

私の経験では、JSFやSpring MVCなどのような他のフレームワークと比較すると、JSPは実際には「死んでいる」。 Java EE 7チュートリアルは、JSPについてほとんど何も語っていません。しかし、Webコンテナですでにサポートされており、引き続き使用できるため、完全に死んでいません。

Java EE JSFがプラットフォーム上で実行されるのか、まったく異なるものですか?

JSFはJava EEの一部ですが、JSFを使用するために完全なJava EEプロファイルは必要ありません。例:

  • TomcatはJava EE Web Profile実装であり、TomcatでJSFを使用できます。
  • JBossでJSFを使用できますが、JSFが機能するためにJMSを有効にする必要はありません。

Java EEコンポーネントはモジュール式であり、JSFを使用するために必要なのはWebプロファイルサーバー/コンテナーのみです。

JSFは、単にWebアプリケーションを開発するためのMVCフレームワークですか?

はい(ただし、単にとは言いません)。それぞれに長所と短所があります。しかし、原理は同じです。

EJBとの統合については議論の余地がありますが、Spring MVCには独自のコンテナがあります。

JSFは、Oracleによって開発されたフレームワークであり、Javaの一部ですか、それともまったく別のフレームワークですか(Zend FramworkがPHPからのものであるかのように)。

Oracleは、仕様を定義するためにチームに委任するようになりました。理論的には、必要に応じて独自のJSFを実装できます。 PHPのZend Frameworkについては知りません。

最も一般的なJSF実装はMojarraとMyFacesです。 (ルイジは今これで私を打ち負かした、彼のリンクをチェックできる)。

[ボーナス] jspまたはjsfの学習をお勧めしますか?

両方をお勧めします。最初にJSP、その後にJSF。

しかし、プロジェクトにJSFを使用することを100%推奨します。ただし、コンポーネント化と、JSFを強力なツールにするすべてのことを理解してください。

JSF 2.2の新機能 もご覧ください。このページは、フレームワークに追加された最新の機能の紹介に最適です。

32
Evandro Pomatti

JSPはJSFを支持して「死んだ」のですか?

いいえ、従来のWebアプリケーションや現在のWebアプリケーションでは、ビューテクノロジーとして維持されます。また、JSFはJSPをビューとして使用しますが、JSF 2以降、テクノロジービューとしてFaceletsを使用することをお勧めします。その理由は次のとおりです。 なぜJSF2.0以降のビュー定義言語としてJSPよりもFaceletsが好まれているのか? 。要するに、Faceletsはレンダリングするコンテンツの前処理と後処理をサポートしていますが、JSPはサポートしていません。

Java EE JSFがプラットフォーム上で実行されるのか、まったく異なるものですか?

JSFは、任意のJava Webアプリケーションサーバーで独自に実行できます。必要なライブラリ、JSF-apiおよびJSF-implを追加するだけです。

JSFは、単にWebアプリケーションを開発するためのMVCフレームワークですか?

はい。 Webサービスの生成、接続プーリング、トランザクション管理などのヘルプは提供しません。@EJBを介したEJBインジェクションと@ManagedPropertyを介したパラメーターインジェクションをサポートしますが、それだけです。 Hibernate、EJB、Spring、CDIなど、他のフレームワークを使用してジョブを実行できます。

JSFは、Oracleによって開発されたフレームワークであり、Javaの一部ですか、それともまったく別のフレームワークですか(Zend FramworkがPHPからのものであるかのように)。

JSFは JSR 344 でサポートされています。この仕様は Java Community Process でサポートされており、Oracleでサポートされています。これから、少なくともOracleがJSFの実装を提供していると推測できます。 JSFは仕様であるため、他の組織でも実装できます。現在、JSFの別の実装 MyFaces があります。

jsp または jsf を学習することをお勧めしますか?

これは、を尋ねるようなものです。HTMLの作成方法、またはHTMLを作成するライブラリセットの使用方法を学ぶ必要がありますか?。 JSPは、Javaテクノロジーの使用により動的コンテンツをサポートするWebアプリケーションのビュー用に作成されたテクノロジーです。JSFは、ビュー内のコンテンツの生成を容易にするMVCフレームワークです(JSPまたはビュー、コントローラー、およびモデルを介したFacelets)とデータバインディング両方を同時に学習できます。現在使用しているものまたは使用するものを学習することをお勧めします。 JSFアプリケーション、および他のMVCフレームワークと連携するJSP、またはJSPで構築された現在のレガシーアプリケーションを維持するJSP。

14
Luiggi Mendoza

1. JSPは「死んで」JSFを支持していますか?

Java EE JSPは「廃止された」と発表されています。より広い世界では、生き生きしています。

2. Java EE JSFがプラットフォーム上で実行されるか、まったく異なるものですか?

「トップ」がどこにあるかによって異なります。サーブレットは、JSFを含むほとんどのJavaフレームワークの基盤です。

3. JSFは、単にWebアプリケーションを開発するためのMVCフレームワークですか?

はい、JSFはプレゼンテーション層フレームワークであるという意味です。

4. JSFはOracleによって開発されたフレームワークであり、Javaの一部ですか、それともまったく別のフレームワークですか(Zend FramworkがPHPからのものであるかのように)?

JSFは、Java EE 7 by Oracleの公式部分です。

5. [ボーナス] jspまたはjsfの学習をお勧めしますか?

両方、特定の深さまで。 HybridJavaも検討してください-JSFと同じ強力ですが、約2倍簡単です。

3
Dima