StrutsとStruts2の違い

Anonim

StrutsとStruts2

Struts(Apache StrutsまたはStruts 1とも呼ばれます)はクロスプラットフォームのオープンですJava EE Webアプリケーションの開発を目的とした、Javaで書かれたソースフレームワーク。これは初期のJava EE Webアプリケーションフレームワークの1つでした。しかし、数年後、Struts2(またはStrutsバージョン2)が登場しました。これはまったく異なる、高度に改良されたWebアプリケーションフレームワークでした。初期バージョンでは欠陥として認識された問題はほとんど解決していませんでした。現在、Struts2は世界でJava EEアプリケーションを開発するために非常に多く使われています。

Strutsとは何ですか?

Struts(Struts 1)フレームワークは、Java EE Webアプリケーションを開発するための最初のWebアプリケーションフレームワークの1つでした。 Strutsフレームワークは、MVC(Model-View-Controller)アーキテクチャの使用を奨励します。 Java Servlet APIの拡張です。 Craig McClanahanは、Strutsのオリジナルクリエイターです。最初はJakaratha Strutsとして知られ、Apache Software FoundationのJakarta Projectのもとで管理されていました。 Apache License 2の下でリリースされています。Strutsフレームワークはリクエストベースのフレームワークと呼ばれ、リクエストハンドラ、レスポンスハンドラ、タグライブラリの3つの主要コンポーネントで構成されています。標準URI(Uniform Resource Identifier)は、要求ハンドラにマッピングされます。レスポンスハンドラは、コントロールの転送を担当します。フォームを使用してインタラクティブなアプリケーションを作成するには、タグライブラリが提供する機能を利用できます。 Strutsは、RESTアプリケーションとSOAP、AJAXなどのさまざまなテクノロジをサポートします。

Struts2とは何ですか?

Strutsフレームワークは、当時のJava EE開発者による特定の制限(主に、プレゼンテーション層と要求処理層とモデルの分離がないこと)が含まれていると認識され、その結果数年後にStruts2が到着しました。実際、Struts2はStrutsとはまったく異なっていました。 Struts2は単にWebWork2.2フレームワーク(すなわち、しばらくの間に別々に働いていたWebWorkとStrutsコミュニティ)の名前を変更した結果、同じコードベースを共有することさえできませんでした。現在の安定版は、2011年5月にリリースされたバージョン2. 2. 3です。

StrutsとStruts2の違いは何ですか?

Strutsフレームワークの多くの問題の1つは、インタフェースではなく抽象クラスへのプログラミングの必要性でした。これはStruts2フレームワークによって解決されました。たとえば、Strutsフレームワークでは、抽象基本クラスからActionクラスを拡張する必要がありましたが、Struts2アクションはActionインタフェースを実装できます。 2つのバージョン間のスレッドモデルの違いにより、StrutsフレームワークでActionオブジェクトに関するスレッド安全性の問題はStruts2フレームワークでは発生しません。理由はStruts2 Actionオブジェクトは各要求に対してインスタンス化され、StrutsフレームワークのActionはそのActionに対するすべての要求を処理するインスタンスが1つしかありません。 Strutsフレームワークのアクションとは異なり、Struts2アクションはサーブレットAPIに依存しません。

Struts2フレームワークのテスト容易性は、Strutsフレームワークよりも比較的高いです。 Struts2のアクションは、インスタンス化、プロパティの設定、およびメソッドの呼び出しという3つのステップを実行するだけでテストできます。 Struts2フレームワークでは、2番目の入力オブジェクトを保持しなくても、入力プロパティとしてActionプロパティが使用されるため、入力の収穫が容易になります。 Struts2フレームワークは、JSTLの統合(Strutsにあります)とは別に、より強力で表現力豊かなOGNL(Object Graph Notation Language)を使用することができます。型変換の場合、StrutとStrut2はCommons-BeanutilsとOGNLをそれぞれ使用します。 Struts2フレームワークは、これらの改良により、非常に成熟したフレームワークとみなされ、Java EEプログラマーの間で非常に人気があります。一方、Strutsフレームワークは廃止されたと考えられています。