Difference between revisions of "MVC"

From CDOT Wiki
Jump to: navigation, search
(Sample code)
m (Sample code)
Line 30: Line 30:
 
<br><br>
 
<br><br>
 
'''Overview''' <br><br>
 
'''Overview''' <br><br>
Struts is a web application framework for developing Java web pages and web application. This framework is an open source framework developed by Apache. The following describes the "Struts Architecture Framework in Nutshell".<br><br>
+
Struts is a web application framework for developing Java web pages and web application. This framework is an open source framework developed by Apache. The following describes the "Struts Architecture Framework in a "nutshell" and a detailed macro view.<br><br>
 
[[Image:struts2-arch.png]]
 
[[Image:struts2-arch.png]]
 
<br>
 
<br>

Revision as of 22:47, 3 April 2007

Model-View-Controller Design Pattern


Definition:
The model-view-controller (MVC) design pattern is a pattern within a pattern. As described in Head First Design Pattern patterns that contain multiple patterns are called compound patters. Architectural or framework patterns frequently use compound pattern.

Friendly Definition:
There are three important features of a MVC design pattern:

  • Model – the underlying data or information that is being processed
  • View – the method in which information is displayed and expressed
  • Controller – the method in which information is being processed

A book in its simplest sense organizes information into a unified collection which contains sets of rules to view and obtain information. The analogy of a book can describe what the MVC design pattern is and how it works.

The model-view-controller requires three essential components: the model, a controller, and a view; likewise a book can be organized into three components: a concept or information, materials used to read and handle the information, and finally formats and rules that communicate and expresses the information.

The information processed in a book can be the model of the MVC pattern since information is the underlying core of the book is the information that is being processed and manipulated.

Pattern diagram

ModelViewControllerDiagram.png

Real World Examples

The MVC design pattern in real world applications can be seen in many architectural core systems or used to structure a framework.

Since the level of coupling between the information and the how information can be displayed but is kept coherent by the use of the controller component the MVC design pattern is seen prevails in UI frameworks and applications especially in the Web-Tier where methods in accessing information can complicate simple request or manipulation of a information.

Struts

The rest of the wiki will describe in detail how Apache’s Struts web application framework work. Much of the description below is referenced from Apache's Struts Official Website and its related pages which is cited in the References section.

Overview

Struts is a web application framework for developing Java web pages and web application. This framework is an open source framework developed by Apache. The following describes the "Struts Architecture Framework in a "nutshell" and a detailed macro view.

Struts2-arch.png

  1. The web browser requests a resource (/mypage.action, /reports/myreport.pdf, et cetera)
  2. The Filter Dispatcher looks at the request and determines the appropriate Action
  3. The Interceptors automatically apply common functionality to the request, like workflow, validation, and file upload handling
  4. The Action method executes, usually storing and/or retrieving information from a database
  5. The Result renders the output to the browser, be it HTML, images, PDF, or something else


Source cited: Apache's Struts Official Documentation

Detailed Architecture Diagram

Struts2-Architecture.png

Sample code