Hi Friends, why struts introduced in to web application.
Plz dont send any links . Need main reason for implementing
struts. Thanks Prakash
Answers were Sorted based on User's Feedback
Answer / anjani kumar jha
Before writing the answer i am assuming that u have idea
about MVC Architecture.
When u r writing the programm using servlet and jsp,every
time u have to write ur own Controoler which is responsible
for handling the request and response.
Writing the Controller is a very tedious task and u might
suffer from so many ecceptions even errors....which is
really very diffcult to handle.
So manage to Controller Apache introduce the Struts.
Struts is also called controller........
In struts the Action servlet and Request Processor is
responsible to handle the Request and Response.
HOW.............
The basic purpose of the Java Servlets in struts is to
handle requests made by the client or by web browsers. In
struts JavaServerPages (JSP) are used to design the dynamic
web pages. In struts, servlets helps to route request which
has been made by the web browsers to the appropriate
ServerPage. The use of servlet as a router helps to make
the web applications easier to design, create, and
maintain. Struts is purely based on the Model- View-
Contoller (MVC) design pattern. It is one of the best and
most well developed design patterns in use. By using the
MVC architecture we break the processing in three sections
named Model, the View, and the Controller. Below we are
describing the working of struts.
As we all are well aware of the fact that each application
we develop has a deployment descriptor i.e. WEB-
INF/web.xml. This is the file which the container reads.
This file has all the configuration information which we
have defined for our web application. The configuration
information includes the index file, the default welcome
page, the mapping of our servlets including path and the
extension name, any init parameters, information related to
the context elements.
In the file WEB-INF/web.xml of struts application we need
to configure the Struts ActionServlet which handles all the
request made by the web browsers to a given mapping.
ActionServlet is the central component of the Struts
controller. This servlet extends the HttpServlet. This
servlet basically performs two important things. First is :
When the container gets start, it reads the Struts
Configuration files and loads it into memory in the init()
method. You will know more about the Struts Configuration
files below. Second point is: It intercepts the HTTP
request in the doGet() and doPost() method and handles it
appropriately.
In struts application we have another xml file which is a
Struts configuration file named as struts.config.xml. The
name of this file can be changed. The name of the struts
configuration file can be configured in the web.xml file.
This file is placed under the WEB-INF directory of the web
application. It is an XML document that describes all or
part of Struts application. This file has all the
information about many types of Struts resources and
configures their interaction. This file is used to
associate paths with the controller components of your
application., known as Action classes like <action path
="/login" type = "LoginAction">. This tag tells the Struts
ActionServlet that whenever the incoming request is
http://myhost/myapp/login.do, then it must invoke the
controller component LoginAction. Above, you can see that
we have written .do in the URL. This mapping is done to
tell the web application that whenever a request is
received with the .do extension then it should be appended
to the URL.
For each action we also have to configure Struts with the
names of the resulting pages that will be shown as a result
of that action. In our application there can be more than
one view which depends on the result of an action. One can
be for a success and the other for the failure. If the
result action is "success" then the action tells the
ActionServlet that the action has been successfully
accomplished or vice- versa. The struts knows how to
forward the specific page to the concerned destination. The
model which we want to use is entirely to you, the model is
called from within the controller components.
Action can also get associate with a JavaBean in our Struts
configuration file. Java bean is nothing but a class having
getter and setter methods that can be used to communicate
between the view and the controller layer. These java beans
are validated by invoking the validate() method on the
ActionForm by the help of the Struts system. The client
sends the request by the normal form submission by using
Get or Post method, and the Struts system updates that data
in the Bean before calling the controller components.
The view we use in the struts can be either Jsp page,
Velocity templates, XSLT pages etc. In struts there are set
of JSP tags which has been bundled with the struts
distribution, but it is not mandatory to use only Jsp tags,
even plain HTML files can be used within our Struts
application but the disadvantage of using the html is that
it can't take the full advantage of all the dynamic
features provided in the struts framework.
The framework includes a set of custom tag libraries that
facilitate in creating the user interfaces that can
interact gracefully with ActionForm beans. The struts Jsp
taglibs has a number of generic and struts specific tags
tags which helps you to use dynamic data in your view.
These tags helps us to interact with your controller
without writing much java code inside your jsp. These tags
are used create forms, internally forward to other pages by
interacting with the bean and helps us to invoke other
actions of the web application.
There are many tags provided to you in the struts
frameworks which helps you in sending error messages,
internationalization etc.
Note: The points we have described above will be in effect
if and only if when the ActionServlet is handling the
request. When the request is submitted to the container
which call the ActionServlet, make sure that the extension
of the file which we want to access should have the
extension .do.
for futhere u may call me...
Thanks and Regards
Anjani Kumar Jha
09623154095
CDAC
Is This Answer Correct ? | 8 Yes | 1 No |
Answer / mani
If we are developing web-app by using servlets or jsp's we
need to concentrate on business logic,presentation
logic,controller logic. For the same application programmers
work is easy becoz in struts controller logic is defined
Several design patterns are implicitly available in struts
struts provide inbuild support for file uploading, i18n.
By using validator frame work in struts we can generate the
java script at client side to provide validations to the web-app
CORRECT ME IF IAM WRONG
Is This Answer Correct ? | 1 Yes | 0 No |
Answer / suresh royal
While developing web applications we need to bother about design patterns already singleton,Factory,DAO,DTO,and MVC design patterns are there by default in struts.
struts supports Validation Framework and Tiles-framework and one lore powerful concept support this struts that is I18N(INTERNATIONALIZATION).
Is This Answer Correct ? | 0 Yes | 0 No |
Answer / ramesh
there are two main reason one is expressive and other one
is reusabilty
if u found any problem for that we don need to invent new
solution for that just will have to pattern thats it and u
can make very expressive ur applicaion by struts
Ramesh bajantri
Is This Answer Correct ? | 0 Yes | 1 No |
What is controller in struts ?
what is the difference between ServletContext and ServletConfig?
Difference between struts1.2 and struts2.0?
3 Answers Bank Of America, HCL, Value Labs,
What are the reasons for an error message not being displayed while developing struts application?
diffrence between dispatch action and lookupdispatch action write simple web appliction (insert records in database)
8 Answers Athena Health Care, Symphony, TCS,
can anyone help me to send the code for Jasper Reporting in java?plz
What is the purpose of dispatcher result type?
What is the front controller in struts2?
What is the difference between Jakarta Struts and Apache Struts? Which one is better to use?
What is the purpose of @result annotation?
Are interceptors and filters different?
Why aren’t the struts tags maintained as part of the jakarta taglibs project ?