Kinh nghiệm của tôi về việc phát triển các trang web động chủ yếu giới hạn ở các máy chủ Java. Tôi đã sử dụng Tomcat để phát triển các máy chủ Java khác nhau và tôi không ngần ngại nói rằng tôi thành thạo một cách hợp lý với công nghệ này, cũng như với HTML / CSS / Javascript phía máy khách cho giao diện người dùng.
Khi tôi nghĩ "trang web động", tôi nghĩ: người dùng yêu cầu URL có chuỗi truy vấn, máy chủ nhận được truy vấn và sau đó tiến hành xuất HTML một cách linh hoạt để trả lời truy vấn. Điều này thường liên quan đến giao tiếp với cơ sở dữ liệu để lấy dữ liệu được yêu cầu để hiển thị. Về cơ bản, đây là ý tưởng đằng sau doGet
phương thức của Java HttpServlet
.
Nhưng những ngày này, tôi đang nghe nhiều hơn về các khung mới hơn như Django và Ruby on Rails, tất cả đều tận dụng kiến trúc "Trình điều khiển Chế độ xem Mô hình". Tôi đã đọc nhiều bài viết giải thích về MVC, nhưng tôi thực sự gặp khó khăn trong việc hiểu các lợi ích. Tôi hiểu rằng ý tưởng chung là tách logic kinh doanh khỏi logic UI, nhưng tôi không thấy điều này thực sự khác biệt như thế nào so với lập trình web thông thường. Về bản chất, lập trình web buộc bạn phải tách biệt logic nghiệp vụ (lập trình phía máy chủ phía sau) khỏi lập trình UI (HTML phía máy khách hoặc Javascript), vì cả hai tồn tại trong các lĩnh vực lập trình hoàn toàn khác nhau.
Câu hỏi: MVC cung cấp cái gì trên một thứ như Java servlet và quan trọng hơn, chính xác là MVC là gì và nó khác với những gì bạn thường làm để phát triển một trang web động bằng cách sử dụng một cách tiếp cận truyền thống hơn như Java servlet (hoặc thậm chí một cái gì đó cũ hơn như CGI)? Nếu có thể, khi giải thích về MVC, vui lòng cung cấp một ví dụ minh họa cách MVC được áp dụng cho quy trình phát triển web và cách nó có lợi.