seminar report on s5
TRANSCRIPT
-
8/12/2019 Seminar Report on s5
1/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
1
MCA@NCERC CALICUT UNIVERSITY
1.INTRODUCTION
Earlier it was very hard to develop a complex web applications. Think of a framework
as a bridge that will help you code faster and easier. A web application framework (WAF) is
a software framework that is designed to support the development of dynamic websites, web
applications, web services and web resources. The framework aims to alleviate the overhead
associated with common activities performed in web development. For example, many
frameworks provide libraries for database access, templating frameworks
and session management, and they often promote code reuse. The majority of Web
frameworks are exclusively server-side technology. By using an appropriate framework, a
developer can often save a significant amount of time building a web site. Each framework is
different, but many provide a variety of useful features. By using a framework, a developer
avoids having to re-implement these same features for each web application they create.
A Web framework is a collection of packages or modules which allow developers to
write Web applications or services without having to handle such low-level details as
protocols, sockets or process/thread management.
-
8/12/2019 Seminar Report on s5
2/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
2
MCA@NCERC CALICUT UNIVERSITY
2.WEB FRAMEWORKSA web application framework (WAF) is a software framework that is designed to
support the development of dynamic websites, web applications, web services and web
resources. Web frameworks provide many typical website components right out of the box,
such as user management functionality which might otherwise take months of custom
development to build. Web frameworks are designed to be reused.
Communities of users and developers spring up around web frameworks where ideas
can be shared and knowledge can be captured. Add-ons, themes, plugins, widgets are all
names for things which develop within web framework communities and enable further rapid
customization of your website. The rapid build of basic website components and ease of
customization leads to large scale time and cost savings. Frameworks can into your way, as
they have made certain choices. How much they are constraining depends on the frameworks,
your experience with it, and what you are trying to accomplish. The first time around you use
a framework for something that it is good at, you are going to be impressed at how easy it
was to accomplish your task. Before long however, you might become so used to the benefits
that a frameworks brings that you wont even notice what the framework is doing for you
anymore; its now in the background. And humans are much attuned to pain, so the pain
points are going to remain.
A framework in context of software development is a set of prewritten code or
libraries which provide functionality common to a whole class of applications. The
framework can be seen as a base or a skeleton to build upon. In relation to libraries a
framework gives a broader span of functionalities. Libraries are often more focused on
solving a narrow scope. Typically a framework provides a predefined structure for the
application. The purpose of using a framework is basically to speed up development by nothaving to rewrite features and structure that are commonly used in most web applications.
Instead of inventing the wheel over and over again the developer has many wheels
(functions/features etc) that are already tested and working properly. Most (web) frameworks
today are free to use and are open source and anyone can join to contribute in some way.
Notice, web frameworks is a trend of later part of first decennium of third millennium.
Experience by using the framework and thus being able to help others. Most of the
frameworks today have quite many contributors and users (developers) inspecting the sourcecode for security risks and evil pieces of code.
-
8/12/2019 Seminar Report on s5
3/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
3
MCA@NCERC CALICUT UNIVERSITY
3.BACKGROUNDThe World Wide Web (often known as the web) was created in 1990 and in the
beginning the web was very static. The user could not interact much with the content, and to
update a piece of text (or something else as well) in a published material on the web, the
author had to edit the page locally and upload it to the server. To get rid of this manual work
the Common Gateway Interface (CGI) standard was created for interfacing external
applications with web servers. CGI created a new process for each request to the server
resulting in heavy load on server side when dealing with a great amount of requests, thereby
the demand for something more efficient grew. In 1995-1996 the growth of web pages
increased dramatically and at the same time e-commerce got about. ColdFusion, PHP and
ASP (Active Server Pages) was created during the same period. Today ASP is replaced with
ASP.NET, but ColdFusion and PHP are still developed and used. The term "web application"
was first introduced in 1999 in the Servelet Specification version 2.2 for the Java language.
Today most web sites are interactive in some way which has made them more complex to
develop and the term web application has become generic.
-
8/12/2019 Seminar Report on s5
4/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
4
MCA@NCERC CALICUT UNIVERSITY
4.WHO SHOULD USE A FRAMEWORKDifferent frameworks might aim for different goals, but in general they all aim for
supporting developers in their work of creating an application with as little effort as possible
with as little hinder as possible. A framework can be used for many purposes, not only serve
common functionalities; it can also help learning a design pattern. Therefore new developers,
that knows some programming but do not know so much about design patterns and best
practice, can benefit from a framework by gaining understanding and programming skills. A
beginner will not feel that the framework is getting in the way as much as an experienced
developer. An experienced developer already knows the basics and how everything functions
and the various parts are related to each other and might therefore sees hinders instead of
possibilities. Experienced developers are also more likely work on more advanced projects
where a framework might not be suitable, due to the broad use of the application and greater
demand for high performance. The advantages of using a framework should be greater than
the disadvantages, otherwise it would, obviously, not be any point of using a framework.
-
8/12/2019 Seminar Report on s5
5/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
5
MCA@NCERC CALICUT UNIVERSITY
5.WEB FRAMEWORKS IN JAVACoding good-looking web applications in java is not super easy. It can be hard to do
and mostly doesnt give us the rich front-end we strive to deliver to happy users. This is
really the catalyst which has caused web frameworks to be created. Both, functional and non-
functional web app requirements have led to the need for various web frameworks to be
created.
The Spring MVC Framework is an open source application framework and inversion
of control container for the Java platform. In Spring Web MVC you can use any object as a
command or form-backing object; you do not need to implement a framework-specific
interface or base class. Java server faces is java specification for building component baseduser interfaces for web applications. It is a standardized display technology which was
formalized in a specification through the java community process. Apache Struts is an
elegant, extensible framework for creating enterprise-ready Java web applications. The
framework is designed to streamline the full development cycle, from building, to deploying,
to maintaining applications over time. GWT Web Toolkit is an open source set of tools that
allows web developers to create and maintain complex JavaScript front-end applications
in Java. Other than a few native libraries, everything is Java source that can be built on any
supported platform with the included GWT Ant build files. It is licensed under the Apache
License version. Play is an open source web application framework, written
in Scala and Java, which follows the modelviewcontroller (MVC) architectural pattern. It
aims to optimize developer productivity by using convention over configuration, hot code
reloading and display of errors in the browser. Play is a high-productivity Java and Scala web
application framework that integrates the components and APIs you need for modern web
application development.
Play is based on a lightweight, stateless, web-friendly architecture and features
predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable
applications thanks to its reactive model, based on iterate IO.
-
8/12/2019 Seminar Report on s5
6/22
-
8/12/2019 Seminar Report on s5
7/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
7
MCA@NCERC CALICUT UNIVERSITY
JIT compilation is a combination of the two traditional approaches to translation to
machine code ahead of time compilation (AOT), andinterpretation and combines some
advantages and drawbacks of both. Roughly, JIT compilation combines the speed of
compiled code with the flexibility of interpretation, with the overhead of an interpreter and
the additional overhead of compiling (not just interpreting). JIT compilation is a form
ofdynamic compilation, and allowsadaptive optimization such asdynamic recompilation
thus in principle JIT compilation can yield faster execution than static compilation.
Interpretation and JIT compilation are particularly suited fordynamic programming
languages, as the runtime system can handle late-bound data types and enforce security
guarantees.
The java development kit is a software development environment used for developingjava applications and applets. It includes the java runtime environment, an interpreter/loader,
a compiler, an archiver, a documentation generator and other tools needed in java
development.
http://en.wikipedia.org/wiki/AOT_compilerhttp://en.wikipedia.org/wiki/Interpreter_(computing)http://en.wikipedia.org/wiki/Dynamic_compilationhttp://en.wikipedia.org/wiki/Adaptive_optimizationhttp://en.wikipedia.org/wiki/Dynamic_recompilationhttp://en.wikipedia.org/wiki/Dynamic_programming_languagehttp://en.wikipedia.org/wiki/Dynamic_programming_languagehttp://en.wikipedia.org/wiki/Dynamic_programming_languagehttp://en.wikipedia.org/wiki/Dynamic_programming_languagehttp://en.wikipedia.org/wiki/Dynamic_recompilationhttp://en.wikipedia.org/wiki/Adaptive_optimizationhttp://en.wikipedia.org/wiki/Dynamic_compilationhttp://en.wikipedia.org/wiki/Interpreter_(computing)http://en.wikipedia.org/wiki/AOT_compiler -
8/12/2019 Seminar Report on s5
8/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
8
MCA@NCERC CALICUT UNIVERSITY
7.COMPARING WEBFRAMEWORKWeb framework comparison across the following categories.
7.1 Rapid application prototyping
Whether youre using the framework for the first time, or youre an expert in all things
framework related, its important to be able to develop quickly to prototype an idea orjust try
new things out. This section rates each framework for the ability to produce content from
scratch with rapid results.
Spring MVCIf youre looking for a framework to help you generate an application fast and clean,
Spring really shouldnt be your go to. Its MASSIVE and hard to grasp if youre just starting
out. For a quick template, you can always download the Petclinic package and strip all of the
unnecessary stuff out but even that will take time, and you need to be able to tell what is
necessary.
Score: 2.5/5Much preexisting Spring knowledge is needed. Plain JSP & Controllers do not
provide out-of -the-box components and widgets that can be used
GrailsGrails comes with areloading mechanism out of the box, but it has some limitations and
you may still want to useJRebel if a part of your project is in Java. The setup is very fast and
scaffolding (code generation) saves a lot of time. Convention over configuration principle
helps you to forget almost all of the configuration hassle.
Score: 5/5 Top marks here. Scaffolding, conventions and hot code reloading, what else
could you want?
GWTThere are lots of pre-canned widgets for quick use but really anything you can do with
JavaScript and the browsers DOM can be done with GWT. If you prefer designing, you can
http://grails.org/Auto+Reloadinghttp://jrebel.com/http://jrebel.com/http://grails.org/Auto+Reloading -
8/12/2019 Seminar Report on s5
9/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
9
MCA@NCERC CALICUT UNIVERSITY
also use GWTs built-in Design Mode, an easy drag and drop interface with automatic code
generation.
Its no Grails, but the goal is to allow developers to productively develop web apps
without being an expert in JavaScript, XMLHttpRequest, and various browser quirks.
Score: 4/5GWT is easy to create and maintain web apps widgets, and the built-in compiler
takes care of efficiency and browser support.
JSFJSF is not fantastic for quick prototyping; code generation is not a built-in feature and
prototype applications require just as much configuration as a full application. This is not
really JSFs fault, as it is reliant on the Java EE specification. JSF does have several useful
Maven archetypes, however, that do provide a good starting point for a basic application.
Prototyping can also be achieved with the vast array of sample projects available both online
and bundled with many of the Java EE application servers. The biggest gains to productivity
with JSF are the wizards available in most IDEs that generate most of the boilerplate code
and configuration for you.
Score: 3/5The quick prototyping of JSF relies on the tooling around it. Maven and
Netbeans provide archetypes and wizards to assist with getting started.
7.2 Framework Complexity
This section is where we explore each frameworks construction. Here, well discuss how
many moving parts exist in each framework and how the complexity of the framework affects
you. There are also other considerations when choosing frameworks, such as whether the
extra features and benefits outweigh the extra complexity levied against frameworks for your
application.
Spring MVCSpring is the Mount Everest, the Pacific Ocean, and the Stegodon of frameworks. The
base Spring framework gives a solid foundation for over 22 subprojects, which increases with
the scope of your application.
-
8/12/2019 Seminar Report on s5
10/22
-
8/12/2019 Seminar Report on s5
11/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
11
MCA@NCERC CALICUT UNIVERSITY
available. There are open source implementations of the JSF specification that do allow the
use of non-Java EE containers like Tomcat, which cuts down tremendously on the complexity
of having to run a full Java Enterprise application server (there are middle grounds though,
like WebSpheres Liberty Profile). The complexity does come with the benefit of access to
the rest of the Java EE stack.
Score using JSF in a Java EE stack: 3.5/5When using the Java EE implementation of
JSF, we must account for the complexity of the Java EE specification and running a full Java
EE server, and one would be hard pressed to claim that the Java EE specification is not
complex.
Score using JSF in an OS implementation: 3/5When using an OS implementation ofJSF, we need to account for the complexity of the underlying framework that JSF is being run
on top of.
7.3 Ease of Use
This section is all about how easy it is to pick up a framework for the first time and play
with it, learn and get results. Think of it this way: if you gave one of these frameworks to a
colleague, how many questions would you have to answer for them? The quality of
documentation is always useful, but if you have to refer to the docs, have you already lost the
battle?
Spring MVCSpring is extensive to say the least and, as a result of that, is not particularly easy to just
pick up one day and use. In order to take advantage, you need to know how Spring as a whole
works, which is its biggest caveat. There are a lot of online tutorials and documentation pages
as well as the Petclinic sample application that you could strip down and use as a base, but,
overall, Spring is for building serious applications with solid foundations, rich user interfaces
and a RESTful API, which makes it completely unnecessary for anything significantly
simpler than that.
Score: 3/5Spring knowledge needed. Plain JSP & Controllers do not provide usable, out-of
-the-box components and widgets.
-
8/12/2019 Seminar Report on s5
12/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
12
MCA@NCERC CALICUT UNIVERSITY
GrailsGrails is designed to be a rapid development framework and rapid is a direct consequence
of ease of use. It is advocating convention over configuration and doing it right. Extensibility
is very simple when using plugins. One command in the console and all the dependencies
and configurations are managed for you.
One downside is that you need to get familiar with Groovy when you learn how to use
Grails. But it shouldnt be a big problem since Groovy is so Java-like anyway.
Score: 4.5/5Designed to be easy to use without any complex configuration, and Groovy
should be more or less easy for Java developers.
GWTWhether youre a coder or a designer, GWT has a good, fairly straightforward structure.
The component structure for the coders out there is easy to work with and the widget options
are numerous. The code is easy to read, modify and reuse, and if you are already familiar
with client-side storage that is easy to work with as well, the only problem is, theres so much
of it. The code is incredibly similar to JavaScript so if youd need to be familiar with it todevelop quickly.
GWT Designer, while not for everyone, is a powerful bi-directional Java GUI designer
that lets you create user interfaces with tools for intelligent layout assist, drag-and-drop, and
automatic code generation.
Score: 4/5Code is easy to read and write and theres a Design mode is there for the non-
coders. Client side storage is a little hard to grasp if you havent used it before.
JSFJSF tries to provide an easy to use framework for creating reusable web components in
your Java applications without a large learning curve. JSF 2.2 was recentlyratified and
released as part of the Java EE 7 specification. JSF is very easy to get up and running and
often does not require extra downloads or configuration as the necessary code is bundled in
any Java EE compliant application server.
http://www.jcp.org/en/jsr/detail?id=344http://www.jcp.org/en/jsr/detail?id=344http://www.jcp.org/en/jsr/detail?id=344http://www.jcp.org/en/jsr/detail?id=344 -
8/12/2019 Seminar Report on s5
13/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
13
MCA@NCERC CALICUT UNIVERSITY
Assuming its not enabled already, getting JSF support in your application server can be
as simple as enabling a checkbox. There are several great tutorials for JSF, some written
byOracle and others by third parties (MyFaces andothers).
JSF can be a little confusing at times however, Java EE can be overwhelming and
incredibly useful features can seem obtuse or obfuscated by poor documentation or easy to
miss in the corpus that is the body of Java EE features. Documentation for JSF is often
incredibly specific to certain tailored environments, and straying from the happy path often
leads to frustration and woe for hopeful and aspiring Java EE developers.
Score: 4/5JSFs tooling makes it easy to use and there are no external dependencies as long
as you stay within the Java EE ecosystem, which JSF leverages well. There are also several
built in components that provide tremendous benefit and some third party component
libraries that look great.
http://www.oracle.com/technetwork/java/javaee/documentation/index-137726.htmlhttp://myfaces.apache.org/docindex.htmlhttp://www.vogella.com/articles/JavaServerFaces/article.htmlhttp://www.vogella.com/articles/JavaServerFaces/article.htmlhttp://myfaces.apache.org/docindex.htmlhttp://www.oracle.com/technetwork/java/javaee/documentation/index-137726.html -
8/12/2019 Seminar Report on s5
14/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
14
MCA@NCERC CALICUT UNIVERSITY
8. HOW TO CHOOSE A WEBFRAMEWORK
8.1 Software Pattern
Almost every framework out there exclusively uses the MVC pattern. MVC, whichstands for Model-View-Controller, helps you keep your data: the model, the logic: the
controller and the user interface: the view, separate from each other. Just because almost
everyone uses MVC doesnt mean that is everything you need to know though. There are a
couple of variants including MVP: Model-View-Presenter, MVA: Model-View-Adapter and
AVC: Application-View-Controller.
8.2 Hosting Requirements
As web developers, we may be inclined to building applications on cutting edgeplatforms but often the need and budget of the client comes first. Often it may be out of the
budget to get a dedicated host to place our applications on and well have to settle with
shared hosting with normal modules and settings.
8.3 Ease of Installation
Ease of installation plays a very important role whilst choosing a framework. A
framework, however feature laden or quick it may be, can pose quite a problem if one has to
run through a number of steps just to get it installed and working.
8.4 Learning Curve
Every framework has its own tiny universe: naming conventions, directory structure
and what notes. Some frameworks are rather flexible when it comes to these while others are
very, very strict throwing up errors at the tiniest of mistakes. Some frameworks follow
general conventions while implementing a feature while others may strike out and do its own
thing. While choosing a framework, remember to choose one that has the smallest possible
learning curve.
8.5 DB Abstraction and ORM
Almost every application has to access a database to either read data off or edit its
contents. So while choosing an application, choose one which lets your application become
database agnostic. Youll never have to care about the database part in case you need to
switch out databases if your framework takes care of that.The second part youll need to think
about is the frameworks ORM capabilities. Without getting technical, ORM or Object
Relational Mapping lets you express data as an object and see how it relates to other objects.
-
8/12/2019 Seminar Report on s5
15/22
-
8/12/2019 Seminar Report on s5
16/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
16
MCA@NCERC CALICUT UNIVERSITY
10. JAVA SERVER FACES
Java server faces is java specification for building component based user interfacesfor web applications. It is a standardized display technology which was formalized in a
specification through the java community process.
10.1 JSF ARCHETECTURE
Fig.10.1 JSF Archetecture
-
8/12/2019 Seminar Report on s5
17/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
17
MCA@NCERC CALICUT UNIVERSITY
10.2 JSF LYFE CYCLE
The six phases show the order in which JSF processes a form. The list shows the
phases in their likely order of execution with event processing at each phase.
10.2.1 Restore view
JSF begins the restore view phase as soon as a link or a button is clicked and JSF
receives a request.
During this phase, the JSF builds the view, wires event handlers and validates to UI
components and saves the view in the Faces Context instance. The Faces Context instance
will now contains all the information required to process a request.
10.2.2 Apply request values
After the component tree is created/restored, each component in component tree uses
decodes method to extract its new value from the request parameters. Component stores this
value. If the conversion fails, an error message is generated and queued on Faces Context.
This message will be displayed during the render response phase, along with any validation
errors.
If any decode methods / event listeners called render Response on the current Faces
Context instance, the JSF moves to the render response phase.
10.2.3 Process validation
During this phase, the JSF processes all validators registered on component tree. It
examines the component attribute rules for the validation and compares these rules to the
local value stored for the component.
If the local value is invalid, the JSF adds an error message to the FacesContext
instance, and the life cycle advances to the render response phase and display the same page
again with the error message.
-
8/12/2019 Seminar Report on s5
18/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
18
MCA@NCERC CALICUT UNIVERSITY
10.2.4 Update model values
After the JSF checks that the data is valid, it walks over the component tree and set
the corresponding server-side object properties to the components' local values. The JSF will
update the bean properties corresponding to input component's value attribute.
If any update Models methods called render Response on the current FacesContext
instance, the JSF moves to the render response phase.
10.2.5 Invoke application
During this phase, the JSF handles any application-level events, such as submitting a
form / linking to another page.
10.2.6 Render response
During this phase, the JSF asks container/application server to render the page if the
application is using JSP pages. For initial request, the components represented on the page
will be added to the component tree as the JSP container executes the page. If this is not an
initial request, the component tree is already built so components need not to be added again.
In either case, the components will render themselves as the JSP container/Application server
traverses the tags in the page.
After the content of the view is rendered, the response state is saved so that subsequent
requests can access it and it is available to the restore view phase.
-
8/12/2019 Seminar Report on s5
19/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
19
MCA@NCERC CALICUT UNIVERSITY
11. JSF USER INTERFACE COMPONENT MODEL
11.1 JSF EVENT HANDLING
When a user clicks a JSF button or link or changes any value in text field, JSF UI
component fires event which will be handled by the application code. To handle such
event, event handlers are to be registered in the application code or managed bean. When
a UI component checks that a user event has happened, it creates an instance of the
corresponding event class and adds it to an event list. Then, Component fires the event,
i.e., checks the list of listeners for that event and call the event notification method on
each listener or handler. JSF also provide system level event handlers which can be used
to do some tasks when application start or are stopping.
11.2 JSF CONVERTER TAGS
JSF provides inbuilt convertors to convert its UI component's data to object used in a
managed bean and vice versa. For example, these tags can convert a text into date object
and can validate the format of input as well.
f:convertNumberConverts a string into a Number of desired formats.
f:convertDateTimeConverts a string into a Date of desired format.
costomConverterCreating a custom converter.
11.3 JSF VALIDATION TAGS
JSF provides inbuilt validators to validate its UI components. These tags can validates
length of field, type of input which can be a custom object.
f:validationLength- validates length of a string.
f:validateLongRange- validates range of numeric value.
f:validateDoubleRange- validates range of float value.
f:validateRegex- validates JSF component with a given regular expression.
CustomValidator- creating a custom validator.
-
8/12/2019 Seminar Report on s5
20/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
20
MCA@NCERC CALICUT UNIVERSITY
11.4 JSF PAGE NAVIGATION
Navigation rules are those rules provided by JSF Framework which describe which
view is to be shown when a button or link is clicked. Navigation rules can be defined in
JSF configuration file named faces-config.xml. Navigation rules can be defined in
managed beans. Navigation rules can contain conditions based on which resulted view
can be shown. JSF 2.0 provides implicit navigation as well in which there is no need to
define navigation rules as such.
-
8/12/2019 Seminar Report on s5
21/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
21
MCA@NCERC CALICUT UNIVERSITY
12.CONCLUSIONWe live in exciting times to be building websites; we liken using web frameworks in web
development to the industrial revolution in manufacturing. Earlier it was very hard to develop
a complex web applications. The main purpose of web application framework is to support
the development of dynamic websites, web applications, web services, and web resources and
it also helps the programmers to build the application quickly.
As a developer using a framework, you typically write code which conforms to some kind
of conventions that lets you plug in to the framework, delegating responsibility for thecommunications, infrastructure and low-level stuff to the framework while concentrating on
the logic of the application in your own code.
-
8/12/2019 Seminar Report on s5
22/22
WEB APPLICATION FRAMEWORKS IN JAVA MCA 2011
22
13.RFERENCES
Books/Articles
Ed Burns and Chris Schalk Java Server Faces Robert Skoczylas Developing Java Web Services Criag Knuckles and David Yuen Web Applications
Web Links
Wikipedia 15 December 2014
Java symposium< http://javasymposium.techtarget.com/html/frameworks.html#GMaggessyJSF > 20
December 2014
Rose India 28 December 2014
Zero turned around 05 January 2014
http://en.wikipedia.org/wiki/Web_application_frameworkhttp://javasymposium.techtarget.com/html/frameworks.htmlhttp://www.roseindia.net/jsf/index.shtmlhttp://zeroturnaround.com/rebellabs/the-2014-decision-makers-guide-to-java-web-frameworks/2/http://zeroturnaround.com/rebellabs/the-2014-decision-makers-guide-to-java-web-frameworks/2/http://zeroturnaround.com/rebellabs/the-2014-decision-makers-guide-to-java-web-frameworks/2/http://zeroturnaround.com/rebellabs/the-2014-decision-makers-guide-to-java-web-frameworks/2/http://www.roseindia.net/jsf/index.shtmlhttp://javasymposium.techtarget.com/html/frameworks.htmlhttp://en.wikipedia.org/wiki/Web_application_framework