JSF、サーブレット、JSPの違いは何ですか?

837
Cheung 2010-01-20 07:15.

いくつか質問があります。これらは :

  1. JSPとサーブレットはどのように関連していますか?
  2. JSPはある種のサーブレットですか?
  3. JSPとJSFはどのように関連していますか?
  4. JSFは、ASP.NET-MVCのようなビルド前のUIベースのJSPのようなものですか?

10 answers

1236
BalusC 2010-01-20 12:39.

JSP(JavaServer Pages)

JSPは、サーバーマシン上で実行されるJavaビューテクノロジであり、クライアント側の言語(HTML、CSS、JavaScriptなど)でテンプレートテキストを記述できます。JSPはtaglibsをサポートしています。これは、ページフローまたは出力を動的に制御できるJavaコードの断片に支えられています。よく知られているtaglibはJSTLです。JSPは、主にtaglibと組み合わせて、バックエンドデータにアクセスするために使用できるExpression Languageもサポートしています(ページ、リクエスト、セッション、およびアプリケーションスコープで使用可能な属性を介して)。

JSPが初めて要求されたとき、またはWebアプリが起動したときに、サーブレットコンテナはそれを拡張クラスにコンパイルしHttpServlet、Webアプリの存続期間中に使用します。生成されたソースコードは、サーバーの作業ディレクトリにあります。たとえばTomcatの場合、それは/workディレクトリです。JSPリクエストで、サーブレットコンテナはコンパイルされたJSPクラスを実行し、生成された出力(通常はHTML / CSS / JSのみ)をWebサーバー経由でネットワーク経由でクライアント側に送信します。クライアント側はそれをWebブラウザに表示します。

サーブレット

サーブレットは、サーバーマシン上で実行されるJavaアプリケーションプログラミングインターフェイス(API)であり、クライアントからの要求をインターセプトし、応答を生成/送信します。よく知られている例は、やなどの一般的なHTTPメソッドを使用HttpServletしてHTTPリクエストをフックするメソッドを提供するものです。で、または最近ではJava EE 6で構成可能な、特定のHTTPURLパターンをリッスンするようにsを構成できます。GETPOSTHttpServletweb.xml@WebServlet

サーブレットが最初に要求されたとき、またはWebアプリの起動時に、サーブレットコンテナはそのインスタンスを作成し、Webアプリの存続期間中メモリに保持します。URLがサーブレットのURLパターンと一致するすべての着信要求に対して、同じインスタンスが再利用されます。によって要求データにアクセスし、によってHttpServletRequest応答を処理できますHttpServletResponse。両方のオブジェクトは、オーバーライドされた方法のいずれか内部メソッドの引数として利用可能であるHttpServlet、などdoGet()doPost()

JSF(JavaServer Faces)

JSFは、サーブレットAPI上に構築されたコンポーネントベースのMVCフレームワークであり、JSPまたはFaceletsなどの他のJavaベースのビューテクノロジで使用できるtaglibを介してコンポーネントを提供します。Faceletsは、JSPよりもJSFにはるかに適しています。つまり、複合コンポーネントなどの優れたテンプレート機能を提供しますが、JSPは基本的にJSFでのテンプレート作成のみを提供するため、生のJavaコード(少し不透明で面倒な作業)を使用してカスタムコンポーネントを作成する必要があります。繰り返されるコンポーネントのグループを単一のコンポーネントに置き換えたいとします。JSF 2.0以降、JSPはFaceletsを支持するビューテクノロジーとして非推奨になりました。<jsp:include>

:JSP自体は非推奨ではなく、JSFとJSPの組み合わせのみが非推奨になります。

:JSPには、Taglibs、特に(Tag File)バリアントを使用した優れたテンプレート機能があります。JSFと組み合わせたJSPテンプレートは欠けているものです。

JSFはMVC(Model-View-Controller)フレームワークであるFacesServletため、唯一の要求/応答コントローラーとしてを提供します。ユーザー入力の収集、検証/変換、モデルオブジェクトへの配置、アクションの呼び出し、応答のレンダリングなど、標準的で面倒なHTTP要求/応答作業をすべて手元で行います。このようにして、基本的に、View用のJSPまたはFacelets(XHTML)ページと、ModelとしてのJavaBeanクラスが作成されます。JSFコンポーネントは、ビューをモデルにバインドするために使用され(ASP.NET Webコントロールが行うように)FacesServletJSFコンポーネントツリーを使用してすべての作業を実行します。

関連する質問

  • ASP.NET / PHPに代わる主流のJavaは何ですか?
  • Java EE Web開発、どのようなスキルが必要ですか?
  • サーブレットはどのように機能しますか?インスタンス化、セッション変数、マルチスレッド
  • Javabeanとは何ですか?どこで使用されますか?
  • JSPファイルでJavaコードを回避する方法は?
  • JSF MVCフレームワークのMVCとはどのようなコンポーネントですか?
  • jQueryやAngularJSなどのJavaScriptライブラリでUIを実現できる場合、JSFの必要性は何ですか
85
S.Lott 2010-01-20 07:28.

見る http://www.oracle.com/technetwork/java/faq-137059.html

JSPテクノロジは、Javaテクノロジファミリの一部です。JSPページはサーブレットにコンパイルされ、JavaBeansコンポーネント(Bean)またはEnterprise JavaBeansコンポーネント(エンタープライズBean)を呼び出して、サーバー上で処理を実行する場合があります。そのため、JSPテクノロジは、Webベースのアプリケーション向けの高度にスケーラブルなアーキテクチャの重要なコンポーネントです。

見る https://jcp.org/en/introduction/faq

A:JavaServer Facesテクノロジーは、Webアプリケーションのユーザーインターフェイスを構築するためのフレームワークです。JavaServerFacesテクノロジーには次のものが含まれます。

UIコンポーネントの表現とその状態の管理、イベントと入力検証の処理、ページナビゲーションの定義、国際化とアクセシビリティのサポートのためのAPIのセット。

JSPページ内でJavaServerFacesインターフェイスを表現するためのJavaServerPages(JSP)カスタムタグライブラリ。

JSPは特殊な種類のサーブレットです。

JSFは、JSPで使用できるタグのセットです。

34
Vh24 2012-04-07 06:24.

ブラウザ/クライアントの観点から

JSPとJSFはどちらも同じように見えます。アプリケーションの要件に従って、JSPは要求/応答ベースのアプリケーションに適しています。

JSFは、より豊富なイベントベースのWebアプリケーションを対象としています。イベントはリクエスト/レスポンスよりもはるかにきめ細かいものだと思います。

サーバーの観点から

JSPページはサーブレットに変換され、最小限の動作しかありません。

JSFページは(特殊なFacesServletによって)コンポーネントツリーに変換され、仕様で定義されたコンポーネントのライフサイクルに従います。

23
Kishor Prakash 2013-07-31 20:48.

サーブレット:

JavaサーブレットAPIを使用すると、Java開発者は動的Webコンテンツを配信するためのサーバー側コードを記述できます。他の独自のWebサーバーAPIと同様に、JavaサーブレットAPIはCGIよりもパフォーマンスが向上しています。ただし、いくつかの重要な追加の利点があります。サーブレットはJavaでコーディングされているため、オブジェクト指向(OO)設計アプローチを提供し、さらに重要なことに、任意のプラットフォームで実行できます。したがって、同じコードをJavaをサポートするすべてのホストに移植できました。サーブレットは、サーバー側のWebアプリケーション開発に広く使用されるテクノロジになったため、Javaの人気に大きく貢献しました。

JSP:

JSPはサーブレットの上に構築されており、Webユーザーインターフェイス用のダイナミックHTMLコンテンツを大量に生成するためのよりシンプルなページベースのソリューションを提供します。JavaServer Pagesを使用すると、Web開発者と設計者は、動的なJava部分の特別なタグを使用してHTMLページを簡単に編集できます。JavaServer Pagesは、JSPコンテナと呼ばれる特別なサーブレットを持つことで機能します。このサーブレットはWebサーバーにインストールされ、すべてのJSPページビュー要求を処理します。JSPコンテナは、要求されたJSPをサーブレットコードに変換し、それをコンパイルしてすぐに実行します。同じページへの後続のリクエストは、ページのランタイムサーブレットを呼び出すだけです。サーバー上のJSPに変更が加えられた場合、それを表示する要求により、ランタイムサーブレットの別の変換、コンパイル、および再起動がトリガーされます。

JSF:

JavaServer Facesは、Webアプリケーションのユーザーインターフェイスを構築するための標準のJavaフレームワークです。最も重要なことは、ユーザーインターフェイスの開発を簡素化することです。これは、多くの場合、Webアプリケーション開発のより困難で退屈な部分の1つです。
エンタープライズWebアプリケーション開発用に設計された包括的なフレームワークがなくても、基本的なJava Webテクノロジ(JavaサーブレットやJavaServer Pagesなど)を使用してユーザーインターフェイスを構築することは可能ですが、これらのコアテクノロジは、さまざまな開発および保守の問題を引き起こす可能性があります。さらに重要なのは、開発者が本番品質のソリューションを実現するまでに、JSFによって解決された同じ一連の問題が非標準的な方法で解決されていることです。JavaServer Facesは、次の方法でJava Webアプリケーションのユーザーインターフェイスの開発を簡素化するように設計されています。
•Webユーザーインターフェイスを構築するためのコンポーネント中心のクライアントに依存しない開発アプローチを提供し、開発者の生産性と使いやすさを向上させます。
•Webユーザーインターフェイスからのアプリケーションデータへのアクセスと管理を簡素化します。
•複数のリクエストと複数のクライアント間のユーザーインターフェイスの状態を、シンプルで目立たない方法で自動的に管理します。
•さまざまなスキルセットを持つ多様な開発者オーディエンスに優しい開発フレームワークを提供します。
•Webアプリケーションのアーキテクチャパターンの標準セットについて説明します。

[ソース:完全なリファレンス:JSF ]

18
Karthi 2013-06-20 21:59.

JSFよりもJSPを優先できる状況もあります。アプリケーションの性質は、テクノロジーを選択するための決定要因となるはずです。

豊富なGUIインタラクションがあり、多くのJavaスクリプトが必要な場合は、JSFをお勧めします。基本的に、GUIアプリのアーキテクチャがコンポーネント指向であり、Swingのように駆動される場合でも、JSFが最適です。

アプリケーションが単なるフォーム送信であり、GUIインタラクションがあまり必要ない場合、新しい技術の学習がオーバーヘッドであり、複雑なフレームワークも不要であれば、JSPはうまくいく可能性があります。

13
cackle 2011-05-15 11:38.

サーブレット-Javaサーバー側のレイヤーです。

  • JSP-HTMLを使用したサーブレットです
  • JSF-タグライブラリに基づくコンポーネントです
  • JSP-サーバーがリクエストを受け取ったときに一度サーブレットに変換されます。
10
mahesh 2011-02-23 20:21.

これは、JSPが実行時にサーブレットに変換されることは事実です。JSFではすべてのプログラミング構造をタグの形式で記述できるため、JSFはWebページを読みやすくするためにまったく新しいものです。

6
user3608245 2014-11-30 23:10.

サーブレットとJSPの基本的な違いは、サーブレットではJavaコードを記述し、HTMLコードを埋め込むことと、JSPでは逆の場合があることです。JSPでは、HTMLコードを記述し、JSPが提供するタグを使用してJavaコードを埋め込みます。

5
Yster 2015-12-25 01:17.

Java Server Pages(JSP)は、Web開発者と設計者が、既存のビジネスシステムを活用する情報が豊富で動的なWebページを迅速に開発し、簡単に保守できるようにするJavaテクノロジです。JSPテクノロジは、ユーザーインターフェイスをコンテンツ生成から分離し、設計者が基になる動的コンテンツを変更せずにページレイアウト全体を変更できるようにします。

Faceletsは、JSF(Java Server Faces)用に設計された最初の非JSPページ宣言言語であり、JSPと比較してJSF開発者にシンプルで強力なプログラミングモデルを提供しました。Webアプリケーション開発用のJSPで発生するさまざまな問題を解決します。

スクリプレットとフェイスレットの機能を比較した表を次に示します。

ソース

0
Ankit 2016-07-05 01:55.
JSP:means HTML+Java Code:

JSPには独自のライフサイクルがありますjsp_init()jsp_service()jsp_destroy

最初のリクエストの後、JSPを.javaファイルに変換します。使用しているタグには3つのタイプがあり
ます1.)スクリプトレス

<%  %>

ここで、開発者は、開発者がデータを取得したいすべてのものを宣言できます

2.)式タグ

<%=  %>

ここで開発者はいくつかの印刷関連データを使用できます

3.)宣言

<!% %>

ここで、開発者はいくつかのメソッド関連データを宣言できます。

Servlet:

サーブレットには独自のライフサイクルがあります。

init()
service()
destroy()

最初のリクエストコンテナがweb.xmlファイルからデータを読み取った後、ウェルカムフィルが表示されます。
アクションを実行した後、URLを検索し、このプロセスの後、特定のサーブレットを検索します。サービス操作が実行されます。

JSF:

JSFには独自のUIがあり、そのライフサイクルは6つの方法で実行できます。

A)Restore view phase
B)Apply request values phase
C)Process validations phase
D)Update model values phase
E)Invoke application phase
F)Render response phase

ここのUIの場合、ここのテーブルの場合、パネルグリッドを使用しており、これにはさまざまな面があります。

Rich Faces
Prime Faces.

Related questions

MORE COOL STUFF

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは、夫に会ったとき、典型的な交際のアドバイスに逆らいました。

マイケルシーンが非営利の俳優である理由

マイケルシーンが非営利の俳優である理由

マイケルシーンは非営利の俳優ですが、それは正確にはどういう意味ですか?

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

特徴的なスターのコリン・エッグレスフィールドは、RomaDrama Liveでのスリル満点のファンとの出会いについて料理しました!加えて、大会での彼のINSPIREプログラム。

「たどりつけば」をオンラインでストリーミングできない理由

「たどりつけば」をオンラインでストリーミングできない理由

ノーザンエクスポージャーが90年代の最も人気のある番組の1つになった理由を確認するには、Blu-rayまたはDVDプレーヤーをほこりで払う必要があります。

バイオニック読書はあなたをより速く読むことができますか?

バイオニック読書はあなたをより速く読むことができますか?

BionicReadingアプリの人気が爆発的に高まっています。しかし、それは本当にあなたを速読術にすることができますか?

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖は、世界で2番目に大きいボイリング湖です。そこにたどり着くまでのトレッキングは大変で長いですが、努力する価値は十分にあります。

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

サロンからのヘアトリミングや個人的な寄付は、油流出を吸収して環境を保護するのに役立つマットとして再利用できます。

ホワイトハウスの最も記憶に残る結婚式を見てください

ホワイトハウスの最も記憶に残る結婚式を見てください

過去200年以上の間にホワイトハウスで結婚したのはほんの数人です。彼らは誰でしたか、そしてそこで結婚式を獲得するために何が必要ですか?

この太陽に優しいショルダーバッグで一日中外出してください

この太陽に優しいショルダーバッグで一日中外出してください

画像クレジット:Richard Mackney / Flickrトラベリングライトは必需品だけを運ぶことを意味するかもしれませんが、デバイスを補充する方法がない外出先では、接続を維持するのが難しくなる可能性があります。それはあなたがすべての生き物の快適さやクールなガジェットを捨てる必要があるという意味ではありません、ただあなたがいくつかのより小さなものを手に入れる必要があるということです、そしておそらくあなた自身をジュースに保つためにいくつかの、例えば非正統的な充電装置を使うでしょう。

ミッドセンチュリーリゾートのポストカードが廃墟に変わるのを見る

ミッドセンチュリーリゾートのポストカードが廃墟に変わるのを見る

ニューヨーク州スプリンググレンにある放棄されたホモワックロッジのボーリング場。キャッツキル南部のこの地域は、ニューヨーク市からのユダヤ人の行楽客に人気があることから、かつてはボルシチベルトとして知られていました。

ブルックリンスレートの美しいボードをあなたのテーブルに座らせましょう

ブルックリンスレートの美しいボードをあなたのテーブルに座らせましょう

ブルックリンスレートブルックリンスレートのマグカップとコースターの賞賛をすでに歌っており、それらの食器製品も同様に堅実です。ブルックリンスレートは、さまざまなサイズとテクスチャのスレートの完全な採石場を販売しています。一部のオプションは赤でも利用できます。上で見ることができるように、彼らは同様にカスタマイズをします。

遺伝子分析により、私たちの体内に生息する微生物の99%がカタログ化されていないことが明らかになりました

遺伝子分析により、私たちの体内に生息する微生物の99%がカタログ化されていないことが明らかになりました

画像:Juan Gaertner / Shutterstock私たちの体の内部は、私たちの細胞とは何の関係もない何十億もの微生物が住んでいる本物の生態系です。これがまだ少し気になることではなかったかのように、これらの微生物の99%が研究されたことがないことがわかりました。

Zendaya Wishes Boyfriend Tom Holland Happy Birthday with Cuddly Photo: He 'Makes Me the Happiest'

Zendaya Wishes Boyfriend Tom Holland Happy Birthday with Cuddly Photo: He 'Makes Me the Happiest'

Zendaya shared a sweet photo in honor of boyfriend Tom Holland's 26th birthday Wednesday

小さな女性:脳卒中を患った後に病院から解放されたアトランタのジューシーな赤ちゃん:「まだ癒し」

小さな女性:脳卒中を患った後に病院から解放されたアトランタのジューシーな赤ちゃん:「まだ癒し」

シーレン「Ms.JuicyBaby」ピアソンは、先月脳卒中で入院した後、「もう一度たくさんのことをする方法を学ばなければならない」ため、言語療法を受けていることを明らかにしました。

エマストーンは彼女のクリフサイドマリブビーチハウスを420万ドルでリストアップしています—中を見てください!

エマストーンは彼女のクリフサイドマリブビーチハウスを420万ドルでリストアップしています—中を見てください!

オスカー受賞者の世紀半ばの家には、3つのベッドルーム、2つのバス、オーシャンフロントの景色があります。

ジーニー・メイ・ジェンキンスは、母乳育児の経験の中で、彼女は「本当に、本当に落ち込んでいる」と言います

ジーニー・メイ・ジェンキンスは、母乳育児の経験の中で、彼女は「本当に、本当に落ち込んでいる」と言います

ジーニー・メイ・ジェンキンスは、生後4か月の娘、モナコに母乳育児をしていると語った。

投資ノート:Bioscout AU$300万シード

投資ノート:Bioscout AU$300万シード

Bioscoutは、農家を運転席に置くという使命を負っています。Artesian(GrainInnovate)やUniseedと並んで、最新のシードラウンドでチームを支援できることをうれしく思います。問題真菌症による重大な作物の損失は、農民にとって試練であることが証明されています。

リトルマーケットリサーチ1| 2022年のクイックグリンプス遠隔医療市場

リトルマーケットリサーチ1| 2022年のクイックグリンプス遠隔医療市場

遠隔医療は、パンデミック後の時代では新しいものではなく、時代遅れの分野でもありません。しかし、業界を詳しく見ると、需要と供給の強力な持続可能性と、米国で絶え間ない革命となる強力な潜在的成長曲線を示しています。

スタートアップ資金調達環境:タイのスタートアップエコシステムの次は何ですか?

スタートアップ資金調達環境:タイのスタートアップエコシステムの次は何ですか?

2021年は、世界的なベンチャーキャピタル(VC)の資金調達にとって記録的な年でした。DealStreetAsiaによると、東南アジアも例外ではなく、この地域では年間で記録的な25の新しいユニコーンが採掘されました。

ムーアの法則を超えて

ムーアの法則を超えて

計算に対する私たちの欲求とムーアの法則が提供できるものとの間には、指数関数的に増大するギャップがあります。私たちの文明は計算に基づいています—建築と想像力の現在の限界を超える技術を見つけなければなりません。

Language