私は最近インタビューで尋ねられました - Java では、コンポーネント ベースのフレームワークとリクエスト ベースのフレームワークをどのように比較しますか? コンポーネント ベースのフレームワークの例として EJB を説明し、リクエスト ベースのフレームワークとして Struts を説明しましたが、その質問を正しく説明したかどうかはわかりませんでした。
インタビュアーが何を意味し、何を比較すべきかについてのアイデアはありますか??
よろしく、アバジュルグ
私は最近インタビューで尋ねられました - Java では、コンポーネント ベースのフレームワークとリクエスト ベースのフレームワークをどのように比較しますか? コンポーネント ベースのフレームワークの例として EJB を説明し、リクエスト ベースのフレームワークとして Struts を説明しましたが、その質問を正しく説明したかどうかはわかりませんでした。
インタビュアーが何を意味し、何を比較すべきかについてのアイデアはありますか??
よろしく、アバジュルグ
彼らはWebフレームワークの例を探していた可能性が高いです。たとえば、JSF はコンポーネント ベースのフレームワークであり、Struts はリクエスト ベースのフレームワークです。
リクエストベースのフレームワークは一般に、HTML リクエストの解析/HTML レスポンスの生成に取り組んでいることを API を通じて明確にしますが、コンポーネントベースのフレームワークはこれを抽象化し、アプリケーションをレンダラーとアクションを備えたコンポーネントのコレクションとして扱おうとします。事をする。
私の意見では、コンポーネントベースの Web フレームワークは、その価値よりも厄介なものです。その主な目的は通常、Web 開発に慣れていない開発者にとって Web アプリの開発を「簡単」にし、従来のデスクトップ開発に近づけることです。ただし、実際には、何か問題が発生した場合は、カスタム コンポーネントを開発する必要があり、「すぐに使える」機能ではない何かのためにフレームワークをカスタマイズする必要があります。基礎となる「従来の」Web 開発の両方を理解する必要があります。そして、コンポーネントベースのフレームワークがそれをどのように抽象化するか - あなたが経験豊富な Web 開発者であり、「従来の」Web 開発で機能する既存のソリューション、ユーティリティ、ライブラリ、またはスニペットを持っている場合は、'
ネイトが言ったように、JSFはコンポーネントベースのJava APIであり、Strutsはアクションベースのフレームワークであり、Httpリクエストが解析され、最後にコントローラーのサーブレットがアクションを処理しながら、リクエストをJSPに転送します。コンポーネントベースの Web フレームワークの標準となった JSF では、JSP または XHTML ページを記述し、ページで使用されるコンポーネントまたはそれらがレンダリングする値をバインドするだけでよいため、実際には要求と応答を処理する必要はありません。バッキング Bean またはマネージド Bean のプロパティにアクセスし、FacesServlet (コントローラ) は、リクエストの解析と、faces-config.xml で指定されたナビゲーション ルールに基づいてレスポンスをレンダリングする JSP へのリダイレクトを処理するすべてのジョブを実行します。ご覧のとおり、Struts と JSF には大きな違いがあります。JSF はコンポーネント イベント ベースのアプローチをもたらしますが、Struts は従来の JSP/サーブレット モデルにより近いものです。jpartogi は、JSF と Struts の作成者は同じであると述べています。Struts は Apache コミュニティが所有するフレームワークであり、JSF はバージョン 1.1 および JSR-252 の JSR-127 で JCP によって指定された API であることに言及したいだけです。バージョン 1.2 用で、さまざまな実装があります (SUN-RI、Apache MyFaces...)
簡単に言えば、フレームワークが各Web要素のJava側にオブジェクトを持っているので、その属性を変更したり、いくつかの機能を追加したりできる場合、それはコンポーネントベースのフレームワークですが、フレームワークがオブジェクトを提供せず、間にWeb要素の応答値を配置する必要がある場合そのタグはリクエストベースのフレームワークです。