0% found this document useful (0 votes)
43 views2 pages

Struts Flow New

1) When a request comes in with a *.do extension, the ActionServlet intercepts it. It loads the Struts configuration file and delegates request handling to the RequestProcessor. 2) The RequestProcessor looks up the matching ActionMapping for the request, instantiates the form and action classes specified, and populates the form from request parameters. 3) It then calls validate() on the form if specified, and execute() on the action class. The action return value determines which forward path is taken.

Uploaded by

Naresh Kumar G
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views2 pages

Struts Flow New

1) When a request comes in with a *.do extension, the ActionServlet intercepts it. It loads the Struts configuration file and delegates request handling to the RequestProcessor. 2) The RequestProcessor looks up the matching ActionMapping for the request, instantiates the form and action classes specified, and populates the form from request parameters. 3) It then calls validate() on the form if specified, and execute() on the action class. The action return value determines which forward path is taken.

Uploaded by

Naresh Kumar G
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 2

Struts Flow-How Struts Works?

Struts Flow start with ActionServlet then call to process() method of RequestProcessor.

Step 1. Load ActionServlet using load-on-startup and do the following tasks.

Any struts web application contain the ActionServlet configuration in web.xml file.
On load-on-startup the servlet container Instantiate the ActionServlet .

First Task by ActionServlet : The ActionServlet takes the Struts Config file name as an init-param.
At startup, in the init() method, the ActionServlet reads the Struts Config file and load into memory.

Second Task by ActionServlet : If the user types http://localhost:8080/app/submitForm.do in the


browser URL bar, the URL will be intercepted and processed by the ActionServlet since the URL has
a pattern *.do, with a suffix of "do". Because servlet-mapping is

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

Third Task by ActionServlet : Then ActionServlet delegates the request handling to another class
called RequestProcessor by invoking its process() method.

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

Step 2. ActionServlet calls process() method of RequestProcessor.

The RequestProcessor does the following in its process() method:


a) The RequestProcessor looks up the configuration file for the URL pattern /submitForm (if the
URL is http://localhost:8080/app/submitForm.do) and finds the XML block (ActionMapping).
ActionMapping from struts-config.xml

<action path="/submitForm"
type="com.techfaq.emp.EmpAction"
name="EmpForm"
scope="request"
validate="true"
input="EmpForm.jsp">
<forward name="success"
path="success.jsp"/>
<forward name="failure" path="failure.jsp" />
</action>

b) The RequestProcessor instantiates the EmpForm and puts it in appropriate scope – either session
or request.
The RequestProcessor determines the appropriate scope by looking at the scope attribute in the same
ActionMapping.
c) RequestProcessor iterates through the HTTP request parameters and populates the EmpForm.
d) the RequestProcessor checks for the validateattribute in the ActionMapping.
If the validate is set to true, the RequestProcessor invokes the validate() method on the EmpForm
instance.
This is the method where you can put all the html form data validations.
If Validate fail the RequestProcessor looks for the input attribute and return to JSP page mentioned
in input tag.
If Validate pass goto next step.
e) The RequestProcessor instantiates the Action class specified in the ActionMapping (EmpAction)
and invokes the execute() method on the EmpAction instance.

signature of the execute method is

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest


request, HttpServletResponse response) throws Exception
{
//your logic
return mapping.findForward("success");
}

f) In return mapping.findForward("success")
RequestProcessor looks for the success attribute and forward to JSP page mentioned in success tag.
i.e success.jsp.
In return mapping.findForward("failure")
RequestProcessor looks for the failure attribute and forward to JSP page mentioned in failure tag.
i.e. failure.jsp

You might also like