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

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

いくつか質問があります。

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

ベストアンサー1

JSP (Java サーバー ページ)

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

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

サーブレット

サーブレットは、サーバーマシン上で実行されるJavaアプリケーションプログラミングインターフェース(API)であり、クライアントからのリクエストをインターセプトし、レスポンスを生成/送信します。よく知られている例としては、HttpServletフックするメソッドを提供するがあります。ウェブ人気のリクエストHTTP メソッドGETやなどです。 は、 または最近ではで設定可能な特定のHTTP URLパターンをリッスンするようにPOST設定できます。HttpServletweb.xmlJava EE 6@WebServlet注釈付き。

サーブレットが最初にリクエストされたとき、またはWebアプリケーションの起動中に、サーブレットコンテナはサーブレットのインスタンスを作成し、Webアプリケーションの存続期間中メモリ内に保持します。同じインスタンスは、サーブレットのURLパターンに一致するURLを持つすべての受信リクエストに対して再利用されます。リクエストデータには、次の方法でアクセスできます。HttpServletRequestそして応答を処理するHttpServletResponseHttpServlet両方のオブジェクトは、doGet()やなどの のオーバーライドされたメソッド内でメソッド引数として使用できますdoPost()

JSF (JavaServer Faces)

JSFは、サーブレットAPI上に構築され、次のような機能を提供するコンポーネントベースのMVCフレームワークです。コンポーネントタグライブラリはJSPやその他のJavaベースのビューテクノロジーで使用できます。フェイスレットFaceletsはJSPよりもJSFに適しています。つまり、優れたテンプレート機能のような複合部品一方、JSPは基本的に<jsp:include>JSF のテンプレート化では、繰り返し使用されるコンポーネントのグループを単一のコンポーネントに置き換える場合、生の Java コード (少しわかりにくく、非常に面倒な作業) を使用してカスタム コンポーネントを作成する必要があります。JSF 2.0 以降、JSP はビュー テクノロジとして非推奨となり、代わりに Facelets が採用されています。

: JSP 自体は非推奨ではありません。JSF と JSP の組み合わせのみが非推奨です。

: JSP には、特に (タグファイル) バリアント。JSF と組み合わせた JSP テンプレートが欠けています。

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

関連する質問

おすすめ記事