動的Webサイトの開発に関する私の経験は、主にJavaサーブレットに限定されています。Tomcatを使用してさまざまなJavaサーブレットを開発してきましたが、このテクノロジーとフロントエンドのクライアント側のHTML / CSS / Javascriptにかなり精通していると言うことをためらいません。
「動的なWebサイト」と思うとき、ユーザーはクエリ文字列でURLを要求し、サーバーはクエリを受信し、クエリに応答するためにHTMLを動的に出力します。これには、表示用に要求されたデータをフェッチするために、データベースとの通信が含まれることがよくあります。これは基本的にdoGet
Javaのメソッドの背後にある考え方HttpServlet
です。
しかし、最近では、DjangoやRuby on Railsなどの「Framework Controller」アーキテクチャを活用する新しいフレームワークについてますます耳にしています。MVCを説明するさまざまな 記事を読みましたが、その利点を本当に理解するのに苦労しています。一般的な考え方はUIロジックからビジネスロジックを分離することであると理解していますが、これが通常のWebプログラミングと実際に異なることを理解できません。Webプログラミングは、その性質上、ビジネスロジック(バックエンドサーバー側プログラミング)をUIプログラミング(クライアント側HTMLまたはJavascript)から分離することを余儀なくされます。これは、両者がまったく異なるプログラミング領域に存在するためです。
質問: Javaサーブレットのようなものに対してMVCが提供するもの、さらに重要なことは、 MVCとは何であり、Javaサーブレット(またはCGIのような古いもの)?可能であれば、MVCを説明するときに、MVCがWeb開発プロセスにどのように適用され、どのように有益であるかを示す例を提供してください。