Struts, (MVC) Architecture ,Struts Architecture - Part -1
What is Struts?
Struts Frame work is the implementation of Model-View-Controller (MVC)
design pattern for the JSP. Struts is maintained as a part of Apache Jakarta
project and is open source. Struts Framework is suited for the application of
any size. Latest version of struts can be downloaded fromhttp://jakarta.apache.org/.
We are using jakarta-struts-1.1 and jakarta-tomcat-5.0.4 for this tutorial.
What is Model-View-Controller (MVC) Architecture?
Model: Model is responsible for providing the
data from the database and saving the data into the data store. All the
business logic are implemented in the Model. Data entered by the user through
View are check in the model before saving into the database. Data access, Data
validation and the data saving logic are part of Model.
View: View represents the user view of
the application and is responsible for taking the input from the user,
dispatching the request to the controller and then receiving response from the
controller and displaying the result to the user. HTML, JSPs, Custom Tag
Libraries and Resources files are the part of view component.
Controller: Controller is intermediary between
Model and View. Controller is responsible for receiving the request from
client. Once request is received from client it executes the appropriate
business logic from the Model and then produce the output to the user using the
View component. ActionServlet, Action, ActionForm and struts-config.xml are the
part of Controller.
The main aim of the MVC architecture is
to separate the business logic and application data from the presentation data
to the user.
Here are the reasons why we should use the
MVC design pattern.
- They are resuable : When the problems recurs, there is no need to invent a new solution, we just have to follow the pattern and adapt it as necessary.
- They are expressive: By using the MVC design pattern our application becomes more expressive.
1). Model: The model object knows about all the data that need to be
displayed. It is model who is aware about all the operations that can be
applied to transform that object. It only represents the data of an application.
The model represents enterprise data and the business rules that govern access
to and updates of this data. Model is not aware about the presentation data and
how that data will be displayed to the browser.
2). View : The view represents the presentation of the application. The view
object refers to the model. It uses the query methods of the model to obtain
the contents and renders it. The view is not dependent on the application
logic. It remains same if there is any modification in the business logic. In
other words, we can say that it is the responsibility of the of the view's to
maintain the consistency in its presentation when the model changes.
3). Controller:
Whenever the user sends a request for something then it always go through the
controller. The controller is responsible for intercepting the requests from
view and passes it to the model for the appropriate action. After the action
has been taken on the data, the controller is responsible for directing the
appropriate view to the user. In GUIs, the views and the controllers
often work very closely together.
Difference between Model 1 and
Model 2 architecture:
Features of MVC1:
- Html or jsp files are used to code the presentation. To retrieve the data JavaBean can be used.
- In mvc1 archictecture all the view, control elements are implemented using Servlets or Jsp.
- In MVC1 there is tight coupling between page and model as data access is usually done using Custom tag or through java bean call.
Features of MVC2:
- The MVC2 architecture removes the page centric property of MVC1 architecture by separating Presentation, control logic and the application state.
- In MVC2 architecture there is only one controller which receives all the request for the application and is responsible for taking appropriate action in response to each request.
What is Struts - Struts Architecture?
In this section we will discuss
about Architecture. Struts is famous for its robust Architecture and it is
being used for developing small and big software projects.
Struts is an open source framework used for
developing J2EE web applications using Model View Controller (MVC) design
pattern. It uses and extends the Java Servlet API to encourage developers
to adopt an MVC architecture. Struts framework provides three key
components:
- A request handler provided by the application developer that is used to mapped to a particular URI.
- A response handler which is used to transfer the control to another resource which will be responsible for completing the response.
- A tag library which helps developers to create the interactive form based applications with server pages.
Struts provides you the basic infrastructure
infrastructure for implementing MVC allowing the developers to concentrate on
the business logic.
MVC Architecture
The main aim of the MVC architecture is
to separate the business logic and application data from the presentation data
to the user.
Here are the reasons why we should use the
MVC design pattern.
- They are resuable : When the problems recurs, there is no need to invent a new solution, we just have to follow the pattern and adapt it as necessary.
- They are expressive: By using the MVC design pattern our application becomes more expressive.
1). Model: The model object knows about all the data that need to be
displayed. It is model who is aware about all the operations that can be
applied to transform that object. It only represents the data of an
application. The model represents enterprise data and the business rules that
govern access to and updates of this data. Model is not aware about the
presentation data and how that data will be displayed to the
browser.
2). View : The view represents the presentation of the application. The view
object refers to the model. It uses the query methods of the model to obtain
the contents and renders it. The view is not dependent on the application
logic. It remains same if there is any modification in the business logic. In
other words, we can say that it is the responsibility of the of the view's to
maintain the consistency in its presentation when the model changes.
3). Controller:
Whenever the user sends a request for something then it always go through the
controller. The controller is responsible for intercepting the requests from
view and passes it to the model for the appropriate action. After the action
has been taken on the data, the controller is responsible for directing the
appropriate view to the user. In GUIs, the views and the controllers
often work very closely together.
Overview of the Struts Framework
The Struts framework is composed of
approximately 300 classes and interfaces which are organized in about 12 top
level packages. Along with the utility and helper classes framework also
provides the classes and interfaces for working with controller and
presentation by the help of the custom tag libraries. It is entirely on to us
which model we want to choose. The view of the Struts architecture is given
below:
The Struts Controller Components:
Whenever a user request for something, then
the request is handled by the Struts Action Servlet. When the ActionServlet
receives the request, it intercepts the URL and based on the Struts
Configuration files, it gives the handling of the request to the Action class.
Action class is a part of the controller and is responsible for communicating
with the model layer.
The Struts View Components:
The view components are responsible for
presenting information to the users and accepting the input from them. They are
responsible for displaying the information provided by the model components.
Mostly we use the Java Server Pages (JSP) for the view presentation. To extend
the capability of the view we can use the Custom tags, java script etc.
The Struts model component:
The model components provides a model of the
business logic behind a Struts program. It provides interfaces to databases or
back- ends systems. Model components are generally a java class. There is not
any such defined format for a Model component, so it is possible for us to
reuse Java code which are written for other projects. We should choose the
model according to our client requirement.
Comments
Post a Comment