Struts Interview Questions and Answers
1.What is MVC?
Model-View-Controller
(MVC) is a design pattern put together to help control change. MVC decouples
interface from business logic and data.
·
Model : The model contains the core of the application's functionality.
The model encapsulates the state of the application. Sometimes the only
functionality it contains is state. It knows nothing about the view or
controller.
·
View: The view provides the presentation of the model. It is the look of the
application. The view can access the model getters, but it has no knowledge of
the setters. In addition, it knows nothing about the controller. The view
should be notified when changes to the model occur.
·
Controller:The
controller reacts to the user input. It creates and sets the model.
2.What is a framework?
A
framework is made up of the set of classes which allow us to use a library in a
best possible way for a specific requirement.
3.What is Struts framework?
Struts
framework is an open-source framework for developing the web applications in
Java EE, based on MVC-2 architecture. It uses and extends the Java Servlet API.
Struts is robust architecture and can be used for the development of
application of any size. Struts framework makes it much easier to design
scalable, reliable Web applications with Java.
4.What are the components
of Struts?
Struts
components can be categorize into Model, View and Controller:
- Model: Components
like business logic /business processes and data are the part of model.
- View: HTML,
JSP are the view components.
- Controller: Action
Servlet of Struts is part of Controller components which works as front
controller to handle all the requests.
5.What are the core classes
of the Struts Framework?
Struts
is a set of cooperating classes, servlets, and JSP tags that make up a reusable
MVC 2 design.
- JavaBeans
components for managing application state and behavior.
- Event-driven
development (via listeners as in traditional GUI development).
- Pages
that represent MVC-style views; pages reference view roots via the JSF
component tree.
6.What is ActionServlet?
ActionServlet
is a simple servlet which is the backbone of all Struts applications. It is the
main Controller component that handles client requests and determines which
Action will process each received request. It serves as an Action factory –
creating specific Action classes based on user’s request.
7.What is role of ActionServlet?
ActionServlet
performs the role of Controller:
- Process
user requests
- Determine
what the user is trying to achieve according to the request
- Pull
data from the model (if necessary) to be given to the appropriate view,
- Select
the proper view to respond to the user
- Delegates
most of this grunt work to Action classes
- Is
responsible for initialization and clean-up of resources
8.What is the ActionForm?
ActionForm
is javabean which represents the form inputs containing the request parameters
from the View referencing the Action bean.
9.What are the important methods of ActionForm?
The
important methods of ActionForm are : validate() & reset().
10.Describe validate() and reset() methods ?
validate() : Used to validate properties after they have been populated;
Called before FormBean is handed to Action. Returns a collection of ActionError as ActionErrors. Following is the method
signature for the validate() method.
public ActionErrors
validate(ActionMapping mapping,HttpServletRequest request)
reset(): reset() method is called by Struts Framework with each request that uses the defined ActionForm. The purpose of this method is to reset all of the ActionForm's data members prior to the new request values being set.
public
void reset() {}
11.What is ActionMapping?
Action
mapping contains all the deployment information for a particular Action bean.
This class is to determine where the results of the Action will be sent once
its processing is complete.
12.How is the Action Mapping specified ?
We can
specify the action mapping in the configuration file called struts-config.xml. Struts framework
creates ActionMappingobject
from <ActionMapping> configuration element of struts-config.xml file
<action-mappings>
<action path="/submit"
type="submit.SubmitAction"
name="submitForm"
input="/submit.jsp"
scope="request"
validate="true">
<forward name="success" path="/success.jsp"/>
<forward name="failure" path="/error.jsp"/>
</action>
</action-mappings>
<action path="/submit"
type="submit.SubmitAction"
name="submitForm"
input="/submit.jsp"
scope="request"
validate="true">
<forward name="success" path="/success.jsp"/>
<forward name="failure" path="/error.jsp"/>
</action>
</action-mappings>
13.What is role of Action Class?
An
Action Class performs a role of an adapter between the contents of an incoming
HTTP request and the corresponding business logic that should be executed to
process this request.
14.In which method of Action class the business logic is executed ?
In the execute() method
of Action class the business logic is executed.
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception ;
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception ;
execute() method of Action class:
- Perform
the processing required to deal with this request
- Update
the server-side objects (Scope variables) that will be used to create the
next page of the user interface
- Return
an appropriate ActionForward object
15.What design patterns are used in Struts?
Struts
is based on model 2 MVC (Model-View-Controller) architecture. Struts controller
uses the command
design pattern and the
action classes use the adapter
design pattern. Theprocess() method
of the RequestProcessor uses the template
method design pattern. Struts also implement the following J2EE design patterns.
- Service
to Worker
- Dispatcher
View
- Composite
View (Struts Tiles)
- Front
Controller
- View
Helper
- Synchronizer
Token
16.Can we have more than one
struts-config.xml file for a single Struts application?
Yes, we
can have more than one struts-config.xml for a single Struts application. They
can be configured as follows:
<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,
/WEB-INF/struts-admin.xml,
/WEB-INF/struts-config-forms.xml
</param-value>
</init-param>
.....
<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,
/WEB-INF/struts-admin.xml,
/WEB-INF/struts-config-forms.xml
</param-value>
</init-param>
.....
<servlet>
17.What is the directory structure of Struts application?
The
directory structure of Struts application :
18.What is the difference between session scope and request scope when saving formbean ?
when
the scope is request,the
values of formbean would be available for the current request.
when the scope is session,the values of formbean would be available throughout the session.
when the scope is session,the values of formbean would be available throughout the session.
0 comments:
Post a Comment