Search This Blog

Thursday, 14 February 2013

Life Cycle of Struts with diagrams (figures)



pic2:



pic 3:



pic 4:


pic 5:


pic 6:



pic 7:


pic 8:

pic 9:



  • web container loads web.xml and verifies whether the url patterns are verified or not? If matches web-container transfer the request to FilterDispatcher
  • FileDispatcher handsover the request to ActionProxy, it is a proxy class which is responsible to apply before and after services to original business logic.
  • Action proxy contacts ConfigurationManager class to know the suitable Action for the request and the needed services for the request.
  • Configuration class loads struts.xml and provides the required information back to ActionProxy
  • ActionProxy delegates the request along with its information to ActionInvocation
  • ActionInvocation executes the interceptors added to an Action form 1-N requests, after that it will calls the business logic implemented from N-1 in reverse order
  • ActionInvocation receives finally result produced by an Action class
  • ActionProxy transfers the result back to FilterDispatcher
  • FilterDispatcher selects an appropriate view, based on the result
  • finally FilterDispatcher uses RequestDispatchers forwarding mechanism and forward a view as a response back to the client



Thursday, 12 July 2012

Action classes


What is Action Class?

An Action class in the struts application extends Struts 'org.apache.struts.action.Action" Class. Action class acts as wrapper around the business logic and provides an inteface to the application's Model layer. It acts as glue between the View and Model layer. It also transfers the data from the view layer to the specific business process layer and finally returns the procssed data from business layer to the view layer.

An Action works as an adapter between the contents of an incoming HTTP request and the business logic that corresponds to it. Then the struts controller (ActionServlet) slects an appropriate Action and creates an instance if necessary, and finally calls execute method.

To use the Action, we need to  Subclass and overwrite the execute() method. In the Action Class don't add the business process logic, instead move the database and business process logic to the process or dao layer.

The ActionServlet (commad) passes the parameterized class to Action Form using the execute() method. The return type of the execute method is ActionForward which is used by the Struts Framework to forward the request to the file as per the value of the returned ActionForward object.

Developing our Action Class?

Our Action class (Ex.java) is simple class that only forwards the Ex.jsp. Our Action class returns the ActionForward  called "test", which is defined in the struts-config.xml file


 Here is code of our Action Class:

Ex.java


package mypackage.net;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class Ex extends Action
{
  public ActionForward execute(
  ActionMapping mapping,
  ActionForm form,
  HttpServletRequest request,
  HttpServletResponse response) throws Exception
  {
  return mapping.findForward("test");
  }
}


the signature of the Action Class.

the signature of the Action Class.

public ActionForward execute(ActionMapping mapping,
                             ActionForm form,
                             javax.servlet.http.HttpServletRequest request,
                             javax.servlet.http.HttpServletResponse response)
                      throws java.lang.Exception

Adding the Action Mapping in the struts-config.xml
To test the application we will add a link in the index.jsp 
<html:link page="/Ex.do">Test the Action</html:link>

Following code under the <action-mappings> tag is used to for mapping the TestAction class.

   <action
      path="/Ex"
      type="mypackage.net.Ex">
      <forward name="test" path="/pages/Ex.jsp"/>
   </action>    



Introduction


What Is the Struts Framework?

The Struts Framework is a standard for developing well-architected Web applications. It has the following features:
Open source
Based on the Model-View-Controller (MVC) design paradigm, distinctly separating all three levels:
Model: application state
View: presentation of data (JSP, HTML)
Controller: routing of the application flow
Implements the JSP Model 2 Architecture
Stores application routing information and request mapping in a single core file, struts-config.xml
The Struts Framework, itself, only fills in the View and Controller layers. The Model layer is left to the developer.




Participants & Responsibilities

The MVC architecture has its roots in Smalltalk, where it was originally applied to map the traditional input, processing, and output tasks to the graphical user interaction model. However, it is straightforward to map these concepts into the domain of multi-tier enterprise applications.

Model - The model represents enterprise data and the business rules that govern access to and updates of this data. Often the model serves as a software approximation to a real-world process, so simple real-world modeling techniques apply when defining the model.
View -The view renders the contents of a model. It accesses enterprise data through the model and specifies how that data should be presented. It is the view's responsibility to maintain consistency in its presentation when the model changes. This can be achieved by using a push model, where the view registers itself with the model for change notifications, or a pull model, where the view is responsible for calling the model when it needs to retrieve the most current data.
Controller - The controller translates interactions with the view into actions to be performed by the model. In a stand-alone GUI client, user interactions could be button clicks or menu selections, whereas in a Web application, they appear as GET and POST HTTP requests. The actions performed by the model include activating business processes or changing the state of the model. Based on the user interactions and the outcome of the model actions, the controller responds by selecting an appropriate view.
Strategies

Web-based clients such as browsers. JavaServer PagesTM (JSPTM) pages to render the view, Servlet as the controller, and Enterprise JavaBeansTM (EJBTM) components as the model. The Java Pet Store sample application illustrates this strategy.

Centralized controller. Instead of having multiple servlets as controllers, a main Servlet is used to make control more manageable. The Front Controller pattern describes this strategy in more detail.

Wireless clients such as cell phones. The Smart Ticket sample application illustrates this strategy.









You may like the following articles:
What is Form Bean?

Sunday, 3 October 2010

What is form bean object?

For example I would like to create "form bean" , now client entered username and password at browser side that means opening one browser we can enter username and password.  Once is submitted this form, these values will be stored in Server side.
In Server side, One class , it will have one object so these data (username and password) is saved in side the object.  This object is called Form bean object in struts.


You may like the following articles:
What is class path?
Form bean