Struts:
What is Struts?
The
core of the Struts framework is a flexible control layer based on standard
technologies like Java Servlets, JavaBeans, ResourceBundles, and XML, as well
as various Jakarta Commons packages. Struts encourages application architectures
based on the Model 2 approach, a variation of the classic Model-View-Controller
(MVC) design paradigm.
Struts provides its own Controller component and integrates
with other technologies to provide the Model and the View. For the Model,
Struts can interact with standard data access technologies, like JDBC and EJB,
as well as most any third-party packages, like Hibernate, iBATIS, or Object
Relational Bridge. For the View, Struts works well with JavaServer Pages,
including JSTL and JSF, as well as Velocity Templates, XSLT, and other
presentation systems.
The Struts framework provides the invisible underpinnings
every professional web application needs to survive. Struts helps you create an
extensible development environment for your application, based on published
standards and proven design patterns.
What is Jakarta
Struts Framework?
Jakarta
Struts is open source implementation of MVC (Model-View-Controller) pattern for
the development of web based applications. Jakarta 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.
What is
ActionServlet?
The
class org.apache.struts.action.ActionServlet is the called the ActionServlet.
In the the Jakarta Struts Framework this class plays the role of controller.
All the requests to the server goes through the controller. Controller is
responsible for handling all the requests.
How you will make
available any Message Resources Definitions file to the Struts Framework
Environment?
T
Message Resources Definitions file are simple .properties files and these files
contains the messages that can be used in the struts project. Message Resources
Definitions files can be added to the struts-config.xml file through
tag.
What is Action Class?
The
Action Class is part of the Model and is a wrapper around the business logic.
The purpose of Action Class is to translate the HttpServletRequest to the
business logic. To use the Action, we need to Subclass and overwrite the
execute() method. In the Action Class all the database/business processing are
done. It is advisable to perform all the database related stuffs in the Action
Class. 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.
What is ActionForm?
An
ActionForm is a JavaBean that extends org.apache.struts.action.ActionForm.
ActionForm maintains the session state for web application and the ActionForm
object is automatically populated on the server side with data entered from a
form on the client side.
What is Struts
Validator Framework?
Struts
Framework provides the functionality to validate the form data. It can be use
to validate the data on the users browser as well as on the server side. Struts
Framework emits the java scripts and it can be used validate the form data on
the client browser. Server side validation of form can be accomplished by sub
classing your From Bean with DynaValidatorForm class.
The Validator framework was developed by David Winterfeldt
as third-party add-on to Struts. Now the Validator framework is a part of
Jakarta Commons project and it can be used with or without Struts. The
Validator framework comes integrated with the Struts Framework and can be used
without doing any extra settings.
Give the Details of
XML files used in Validator Framework?
The
Validator Framework uses two XML configuration files validator-rules.xml and
validation.xml. The validator-rules.xml defines the standard validation
routines, these are reusable and used in validation.xml. to define the form
specific validations. The validation.xml defines the validations applied to a
form bean.
Struts1 vs Struts 2
Struts1:
Needs ActionForm
No interceptor
Html tags
Needs req and response
Struts2:
Not need form class
Has interceptor
OGNL tags
No need of req and response
Types of Action
classes in struts
1.ForwardAction class
2.DispatchAction class
3.IncludeAction class
4.LookUpDispatchAction class
5.MappingDispatchAction class
6.SwitchAction class
7.LocaleDispatchAction class
8.DownloadAction class
IBatis:
What is iBatis ?
A JDBC Framework
Developers write SQL, iBATIS executes it using JDBC.
No more try/catch/finally/try/catch.
An SQL Mapper
Automatically maps object properties to prepared statement
parameters.
Automatically maps result sets to objects.
Support for getting rid of N+1 queries.
A Transaction Manager
iBATIS will provide transaction management for database
operations if no other transaction manager is available.
iBATIS will use external transaction management (Spring, EJB
CMT, etc.) if available.
Great integration with Spring, but can also be used without
Spring (the Spring folks were early supporters of iBATIS).
What isn't iBATIS ?
An ORM
Does not generate SQL
Does not have a proprietary query language
Does not know about object identity
Does not transparently persist objects
Does not build an object cache
Essentially, iBatis is a very lightweight persistence
solution that gives you most of the semantics of an O/R Mapping toolkit,
without all the drama. In other words ,iBATIS strives to ease the development
of data-driven applications by abstracting the low-level details involved in
database communication (loading a database driver, obtaining and managing
connections, managing transaction semantics, etc.), as well as providing
higher-level ORM capabilities (automated and configurable mapping of objects to
SQL calls, data type conversion management, support for static queries as well
as dynamic queries based upon an object's state, mapping of complex joins to
complex object graphs, etc.). iBATIS simply maps JavaBeans to SQL statements
using a very simple XML descriptor. Simplicity is the key advantage of iBATIS
over other frameworks and object relational mapping tools.
Configuring the Environment:
Let see how to configure the iBatis-Spring environment. When
working with Spring and iBATIS, you will have a minimum of three XML
configuration files, and you will often have even more. It is important that
you become familiar with these config files. So how do you make iBATIS
available to your application? There are a couple of ways:
Using Spring - iBATIS with a stand-alone application:
You should place the ibatis-2.3.0.677.jar in the
application's classpath. At minimum, you must define and place the following
three configuration files in the classpath
Spring config - This file defines the database connection
parameters, the location of the SQL Map config file, and one or more Spring
beans for use within the application. ( applicationContext.xml).
SQL Map config - This file defines any iBATIS-specific
configuration settings that you may need and declares the location for any SQL
Map files that should be accessible through this config file.
(SqlMapConfig.xml)
SQL Map(s) One or more SQL Map files are declared in the SQL
Map config and typically mapped to a single business entity within the
application ,often represented by a single Java class (domainObject.xml).
Assuming you have no other knowledge of the data and have to
use a generic sort method, the best theoretical in-place sort algorithm is
O(n*log(n)). The Arrays.sort method should be using one of those, and is your
best choice without more info.
If you're willing to use a lot of memory, you can use a
non-in place sort such as radix or counting. These can be quicker than
n*log(n), some as quick as O(n), but may use O(n) or worse memory. If you have
knowledge of the data having special properties (such as it being almost
already sorted) an insertion sort or similar algorithms could be quicker than
O(n*log(n)) without using memory, but without more info one of those can't be
suggested.
No comments:
Post a Comment