Struts Flow Diagram Step By Step
In this section we will read about the flow of struts application. Here we
will see the architecture of struts with the help of a diagram. We will also
describe all the steps involving in executing the application.
In this section we will focus on the Struts 2.X architecture.
Below is the diagram of Struts 2 architecture.
In struts application, struts work flow starts with the request, coming from
a resource such as JSP page which is going through the standard filter chain to
the Servlet container. The standard filter chain includes ActionContextCleanUp,
- ActionContextCleanUp : In the filter chain
ActionContextCleanUp is an optional filter which may be excluded when a request
goes to the Servlet container. This filter is mainly used for integrating the
- FilterDispatcher : FilterDispatcher is the next filter of
the filter chain from which the request is passing and goes to the Servlet
container. This filter is the required filter which uses the
ActionMapper to specify whether the Action should be invoked or not.
If the ActionMapper mapped to Action invocation then the
FilterDispatcher assigns control to the ActionProxy. An ActionProxy contacted to
the configuration file manager named struts.xml and creates an
ActionInvocation which implements the command pattern. Then the
configured interceptors are invoked by the ActionInvocation
After invoking the Action the ActionInvocation
looks up for the appropriate result related with the Action mapped in struts.xml.
Then the result is executed which needs rendering of JSP or templates. After
executing the result response is returned through the filters configured in the
web.xml. In this process interceptors are executed again and clean up operation
of ThreadLocal is performed. In the clean up operation the FilterDispatcher
checks for the presence of ActionContextCleanUp filter if, it is not present
then it cleans up all the ThreadLocals otherwise, it doesn't clean up
Steps to invoke Struts 2 applications
Struts 2 Application follows the following steps while executing :
- Receive Request : In the first step an struts application
receives the request from the resource.
- Maps Action : The request that the struts application
receives is passed through a filter chain. In this filter chain a filter
FilterDispatcher specifies the Action according to the received request
and mapped to the ActionMapper whether the action should be invoked or not.
- Interceptor Implementation : Once the Action is mapped to
the ActionMapper for invoking the action then the FilterDispatcher will assigned
the control to the ActionProxy. The ActionProxy will contact to the struts.xml
file and creates the ActionInvocation and the ActionInvocation implements the
- Execution of Action : The interceptors are invoked for
processing the common functionalities. After invoking the interceptors
ActionInvocation invokes the Action.
- Rendering Result : If the Action is invoked according to
the request received the ActionInvocation searches for the corresponding result
of the Action mapped in struts.xml file. And the result is executed which needs
rendering of JSP or templates.
- Return Response : After executing the result response is
returned by the filters configured in the web.xml file. In the process return
response the interceptors are invoked in reverse order and provide to perform
some additional tasks such as clean-up operation.
- Display Result : At last the control is returned to the
Servlet container which shows the output to the browser according to the
For reading more in detail about Struts 2 you may go through the following