Java J2ee Frameworks

Apache Struts

Apache Struts is an open-source web application framework for developing Java EE web applications. It uses and extends the Java Servlet API to encourage developers to adopt a model–view–controller (MVC) architecture. It was originally created by Craig McClanahan and donated to the Apache Foundation in May, 2000. Formerly located under the Apache Jakarta Project and known as Jakarta Struts, it became a top-level Apache project in 2005.

Design Goals and Overview

In a standard Java EE web application, the client will typically call to the server via a web form. The information is then either handed over to a Java Servlet which interacts with a database and produces an HTML-formatted response, or it is given to a JavaServer Pages (JSP) document that intermingles HTML and Java code to achieve the same result. Both approaches are often considered inadequate for large projects because they mix application logic with presentation and make maintenance difficult.

The goal of Struts is to separate the model (application logic that interacts with a database) from the view (HTML pages presented to the client) and the controller (instance that passes information between view and model). Struts provides the controller (a servlet known as ActionServlet) and facilitates the writing of templates for the view or presentation layer (typically in JSP, but XML/XSLT and Velocity are also supported). The web application programmer is responsible for writing the model code, and for creating a central configuration file struts-config.xml that binds together model, view and controller.

Requests from the client are sent to the controller in the form of "Actions" defined in the configuration file; if the controller receives such a request it calls the corresponding Action class that interacts with the application-specific model code. The model code returns an "ActionForward", a string telling the controller what output page to send to the client. Information is passed between model and view in the form of special JavaBeans. A powerful custom tag library allows it to read and write the content of these beans from the presentation layer without the need for any embedded Java code.

Struts is categorized as a request-based web application framework.

Struts also supports internationalization by web forms, and includes a template mechanism called "Tiles" that (for instance) allows the presentation layer to be composed from independent header, footer, menu navigation and content components.

Java Server Faces

JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications. It was formalized as a standard through the Java Community Process and is part of the Java Platform, Enterprise Edition.

JSF 2 uses Facelets as its default templating system. Other view technologies such as XUL can also be employed. In contrast, JSF 1.x uses JavaServer Pages (JSP) as its default templating system.

JSF and Ajax

JavaServer Faces is based on a component-driven UI design model, using XML files called view templates or Facelets views. Requests are processed by the FacesServlet, which loads the appropriate view template, builds a component tree, processes events, and renders the response, typically in the HTML language, to the client. The state of UI components and other objects of scope interest, is saved at the end of each request in a process called stateSaving (note: transient true), and restored upon next creation of that view. Objects and states can be saved either on the client or server side.

JSF is often used together with Ajax, a Rich Internet application technology. Ajax is a combination of technologies that make it possible to create rich user interfaces. The user interface components in Mojarra (the JSF reference implementation) and Apache MyFaces were originally developed for HTML only, and Ajax had to be added via JavaScript. This has changed, however: Because JSF supports multiple output formats, Ajax-enabled components can easily be added to enrich JSF-based user interfaces. The JSF 2.0 specification provides built in support for Ajax by standardizing the Ajax request lifecycle, and providing simple development interfaces to Ajax events, allowing any event triggered by the client to go through proper validation, conversion, and finally method invocation, before returning the result to the browser via an XML DOM update.

JSF 2 includes support for graceful degradation when JavaScript is disabled in the browser.

Hibernate (Java)

Hibernate is an object-relational mapping (ORM) library for the Java language, providing a framework for mapping an object-oriented domain model to a traditional relational database. Hibernate solves object-relational impedance mismatch problems by replacing direct persistence-related database accesses with high-level object handling functions.

Hibernate is free software that is distributed under the GNU Lesser General Public License.

Hibernate's primary feature is mapping from Java classes to database tables (and from Java data types to SQL data types). Hibernate also provides data query and retrieval facilities. It also generates the SQL calls and attempts to relieve the developer from manual result set handling and object conversion and keep the application portable to all supported SQL databases with little performance overhead.

Spring Framework

The Spring Framework is an open source application framework and inversion of control container for the Java platform.

The first version was written by Rod Johnson, who released the framework with the publication of his book Expert One-on-One J2EE Design and Development in October 2002. The framework was first released under the Apache 2.0 license in June 2003. The first milestone release, 1.0, was released in March 2004, with further milestone releases in September 2004 and March 2005. The Spring 1.2.6 framework won a Jolt productivity award and a JAX Innovation Award in 2006. Spring 2.0 was released in October 2006, Spring 2.5 in November 2007, Spring 3.0 in December 2009, and Spring 3.1 in December 2011. The current version is 3.2.2, which was released in March 2013. Spring Framework 4.0 is expected by the end of 2013, with plans to support Java SE 8, Groovy 2, some aspects of Java EE7, and WebSockets.

The core features of the Spring Framework can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. Although the Spring Framework does not impose any specific programming model, it has become popular in the Java community as an alternative to, replacement for, or even addition to the Enterprise JavaBean (EJB) model.


The Spring Framework comprises several modules that provide a range of services:

Inversion of control container : configuration of application components and lifecycle management of Java objects, done mainly via dependency injection

Aspect-oriented programming : enables implementing cross-cutting concerns.

Data access: working with relational database management systems on the Java platform using JDBC and object-relational mapping tools and with NoSQL databases

Transaction management : unifies several transaction management APIs and coordinates transactions for Java objects

Model–view–controller : an HTTP- and servlet-based framework providing hooks for extension and customization for web applications and RESTful web services.

Remote access framework : configurative RPC-style marshalling of Java objects over networks supporting RMI, CORBA and HTTP-based protocols including web services (SOAP)

Convention over configuration: a rapid application development solution for Spring-based enterprise applications is offered in the Spring Roo module

Authentication and authorization : configurable security processes that support a range of standards, protocols, tools and practices via the Spring Security sub-project (formerly Acegi Security System for Spring).

Remote management: configurative exposure and management of Java objects for local or remote configuration via JMX

Messaging: configurative registration of message listener objects for transparent message-consumption from message queues via JMS, improvement of message sending over standard JMS APIs

Testing: support classes for writing unit tests and integration tests

Quality Service

“Quality in a service or product is not what you put into it. It is what the client or customer gets out of it.” – Peter Drucker

Productivity & Efficiency

“Productivity and efficiency can be achieved only step by step with sustained hard work, relentless attention to details and insistence on the highest standards of quality and performance.” - J. R. D. Tata

Strong Determination

”An invincible determination can accomplish almost anything and in this lies the great distinction between great men and little men.” --Thomas Fuller


"Do you know the difference between education and experience? Education is when you read the fine print; experience is what you get when you don't." -- Pete Seeger

Good Judgement

"Good judgment comes from experience, and experience comes from bad judgment." --Barry LePatner

Create Success

"The majority of men meet with failure because of their lack of persistence in creating new plans to take the place of those which fail.” --Napoleon Hill

Affordable & One Stop Solution

Are you looking for the most affordable, creative and reliable professional software development company ? Yes, our Organization is best service provider and have done more than 300 works in various Industry and well known Java / J2ee / dotnet / php company in Bangalore. The services offered by Datametrics is not limited to just website development, but also Customized Erp's & Customized Crm's


Leading Edge Solutions

At Datametrics, we are adapted to deliver leading edge solutions that identify with your brand image. This forms a platform for identifying even the most complex requirements of your organization. Rather than developing generic solutions, our team fully understands your business objectives and creates a unique solution that amplifies your business presence manifold. Our work is not just a one-off task.


Unique Selling Proposition

Agile Technology : Yes, as the forerunning software company, we do follow that. This is why we are different from our competitors. Agile technology helps us to develop web development and website design solutions exactly like our clients want. Using lots of iterations and huge customer involvement, we finally reach the final goal. We provide our customers a complete set of skilled worker who work dedicatedly on the project.