Open Source Web Frameworks in Java
|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.
Go To Struts
|Turbine is a servlet based framework that allows experienced Java developers to quickly build secure web applications. Turbine is an excellent choice for developing applications that make use of a services-oriented architecture. Some of the functionality provided with Turbine includes a security management system, a scheduling service, XML-defined form validation server, and an XML-RPC service for web services. It is a simple task to create new services particular to your application.
Go To Turbine
|Tapestry is a powerful, open-source, all-Java framework for creating leading edge web applications in Java.
Tapestry reconceptualizes web application development in terms of objects, methods and properties instead of URLs and query parameters.
Tapestry is an alternative to scripting environments such as JavaServer Pages or Velocity. Tapestry goes far further, providing a complete framework for creating extremely dynamic applications with minimal amounts of coding.
Go To Tapestry
|WebWork is a web application framework for J2EE. It is based on a concept called \"Pull HMVC\" (Pull Hierarchical Model View Controller).
Go To WebWork
|Apache Cocoon is a web development framework built around the concepts of separation of concerns and component-based web development.
Cocoon implements these concepts around the notion of 'component pipelines', each component on the pipeline specializing on a particular operation. This makes it possible to use a Lego(tm)-like approach in building web solutions, hooking together components into pipelines without any required programming.
Go To Cocoon
|Spring is a layered Java/J2EE application framework, based on code published in Expert One-on-One J2EE Design and Development
Go To Spring
|Maverick is a Model-View-Controller (aka \"Model 2\") framework for web publishing using Java and J2EE. It is a minimalist framework which focuses solely on MVC logic, allowing you to generate presentation using a variety of templating and transformation technologies.
Go To Maverick
|Echo is a framework for developing object-oriented, event-driven Web applications. Echo removes the developer from having to think in terms of \"page-based\" applications and enables him/her to develop applications using the conventional object-oriented and event-driven paradigm for user interface development.
Go To Echo
|SOFIA is the Salmon Open Framework for Internet Applications.
Conceptually, SOFIA is similar to other J2EE MVC open source frameworks, like Apache Struts. But SOFIA sets a new standard for Java development by delivering so much more in a framework matching best-of-breed tools integration with robust JSP class and tag libraries. SOFIA shortens application development time on the strength of its visual development capabilities and pre-built Java components that dramatically simplify coding.
Go To SOFIA
|The Verge Framework is an open source J2EE application framework written entirely in Java using only the standard J2EE APIs. This project aims to develop and promote a highly flexible and extensible framework for building enterprise applications.
Go To Verge
|Anvil is a Java based server environment and object oriented programming language with templating support, being especially well-suited to for web applications.
Go To Anvil
|Jaffa (Java Application Framework For All) is an enterprise-focused Java framework for rapid application development. It provides a complete Java Web application development stack, extending exsiting projects like Tomcat and Struts at the frontend with MVC-based web widgets, all the way through to a high-performance lightweight O/R persistence engine, with plenty of rich features in between including rules engines, declarative application, and data security.
Go To Jaffa
|Japple is a rapid application development environment for building web applications and services. Built on the JavaTM2 Platform and open-standards, Japple allows you to develop and deploy web applications faster, easier and more efficiently than traditional methods.
Go To Japple
Go To JPublish
|Jucas is a web-framework which brings together the pull MVC concept with component orientated design GUI programming.
Go To Jucas
|MyFaces is an implementation of JavaServer(tm) Faces (JSR 127), a new and upcoming web application framework that accomplishes the MVC paradigm. It is comparable to the well-known Struts Framework but has features and concepts that are beyond those of Struts.
Go To MyFaces
|WebOnSwing is a revolutionary multiple environment application framework that allows you to create web applications in the same way you develope a desktop one. You dont need to use JSP files, special tags, XML files, requests, posts, etc. Everything is Java and pure HTML files that comes directly from the graphic designer.
This framework constructs and handles html pages with Swing components, allowing to use MVC architecture and all the facilities provided by Swing in the web.
Go To WebOnSwing
|Chrysalis is a Java web development framework. It has a different focus from most Model-View-Controller (MVC) web frameworks. Chrysalis controllers resemble normal Java classes with multiple methods. Client request URLs are mapped to each controller method.
Go To Chrysalis
|VRaptor is a MVC web framework. It is highly based on the Inversion of Control principles, using constructor injection to decouple your components from your business logic classes.
Go To VRaptor
|Program your JPS & Servlets like you program your Swing components. Swinglets is a server side component library that uses an identical design to Swing. Swinglets has look and feels for HTML, Java Script and WML.
The Components, Models, Renderers, and LookAndFeels are very similar. It has Swing event handling too. In fact Swinglets actually uses the Swing models (e.g. TableModel). This means you can take your existing models and start working with Servlets straight away. It's just about as close to a standard as you can get without it actually coming from Sun themselves.
Go To Swinglets
|a nice alternative to struts like framework
you do not need to xrite a signle html line
Go To Millstone
|Wicket is a Java web application framework that takes simplicity, separation of concerns and ease of development to a whole new level. Wicket pages can be mocked up, previewed and later revised using standard WYSIWYG HTML design tools. Dynamic content processing and form handling is all handled in Java code using a Swing-like component model backed by POJO data beans that can easily be persisted with Hibernate.
Go To Wicket
* Support web-environment with multiple concurrent application sessions
* Component-oriented architecture that allows developer to enable existing swing component to web environment easily
* Support common AWT/Swing components in java.awt.* and javax.swing.*
* Support all component layouts in jdk
* Highly configurable use of jxp template for component presentation
Go To SwingWeb
|Macaw is an object-publishing framework designed for local web applications. Freemarker is used for presentation, Jetty is used as the default web container, and there is a basic integration with Hibernate (but other persistence mechanisms can be used). The framework requires two layers over the top of \"business logic\" classes: a Java web layer where certain simple method and class naming conventions are used to facilitate easy mapping of data to and from HTML, and Freemarker page templates. A small number of Freemarker tags are defined to enable references to Macaw-based objects within the page templates.
Go To Macaw
|Barracuda is an open-source Presentation Framework designed to make it easier to build servlet based webapps by applying proven client-server patterns to the web development paradigm. It features a DOM based templating mechanism for better separation of code from content (default XMLC), a UI component model that provides a series of server side widgets (table, list, template, etc) that make it easy to manipulate DOM structures, and a strongly typed MVC interfaces just like in Swing. With support for multiple markup languages (HTML, WML, XML, etc). It has an event model that provides Model 2 style flow control and allows for true event driven programming on the server. You can add listeners to components and your server-side event handler code will automatically get notified when an action occurs on the client.
Go To Barracuda
|RIFE offers an alternative approach to web application development and design. It builds upon the Java platform, but offers all required tools and APIs to implement and perform all common website related tasks in a fast, intuitive and consistent manner.
RIFE has been designed for perfect separation of tasks during a development cycle. Every developer, dba and designer only has to focus on his own tasks. At any moment the work can be effortlessly integrated with the work of the rest of the team.
This results in a loosely coupled and very robust system. One can make incremental improvements with little or no risk of unwanted side-effects elsewhere in the system.
RIFE is composed out of a large collection of modular parts, which include:
* web application engine,
* integrated web continuations,
* customizable multi-format template engine (html, xml, sql, java, txt, ...)
* support for template content transforming through for example XSLT,
* authentication framework,
* database query builders,
* simple persistance layer,
* fault-tolerant JDBC wrappers and connection pooling,
* web-oriented database utilities,
* central data repository,
* cron-like scheduler,
* configuration framework.
The central part is the engine which formalizes all aspects of dynamic web development. It graciously solves all doubt, confusion and maintenance problems of HTTP's statelessness and liberal CGI interface.
Go To RIFE
It gets rid of almost all the boiler plate code between the web browser and your Java code.
Go To DWR
|JSPWidget is a JSP Framework that provides event-driven,view state retained,server-side GUI controls to make JSP development as intuitive as in traditional client forms or in client-based Web applications.
Go To JSPWidget
|JOSSO, or Java Open Single Sign-On, is an open source J2EE-based SSO infrastructure aimed to provide a solution for centralized platform neutral user authentication.
Go To JOSSO
|JAT is a flexible Java base-framework which can be easily extended to improve projects start-up time.
JAT allows to build Web applications (J2EE) or standalone application (server, batch, etc.).
JAT supplies the main basic functionalities of any Java application, such as:
* High Business Object abstraction
* Integration facilities (provided for DBMS, LDAP and open to any software product)
* Authentication and user privileges management
* MVC pattern implementation (with privileges management and page flow control)
* HTML layout structure management (header, footer, menu, etc.)
* HTML dynamic contents and facilities (form, report, paging)
* Logging feautures
* Help on-line utility
* High configuration of all described functionalities
* Administration and configuration GUI
Go To JAT
|XML / Java Framework to develop J2EE business applications rapidly and easily. It is based in business components defined with XML. Feature rich and flexible since is used for years to create real business applications.
Go To OpenXava
|Stripes is a Java web framework that makes web development as easy as it should be. It requires zero external configuration beyond the registration of one servlet and one filter. Stripes includes simple yet powerful solutions to common problems such as indexed properties, multi-event forms, localization and use of domain objects in the web tier. All of this in a compact framework with hardly any dependencies!
Go To Stripes
|Click is a J2EE web application framework created for commercial Java developers.
* Very easy to learn
* Component and Page Oriented design
* Event base programming model
* Automatic form validation
* Page templating
* Velocity page rendering
* Superb error reporting
* High performance
The design philosophy behind Click is best summarized in the Swedish word lagom which translates to not too little or too much, but optimal.
Go To Click
Go To ZK
|The caramba framework is built from bottom to top with one main goal: creating Responsive, Rich Internet Applications.
With the AJAX technology we could already achieve this, but it was hard to debug, error prone and time intensive to make it work.
We are sure that simplicity can be achieved by following the event driven architecture: Caramba is 100% event driven, so very, very easy to use.
You don't need to learn another language. Just the good old java syntax and JSP, that's all you need to know to get started.
Go To Caramba
|wingS is a component based web framework resembling the Java Swing API with its MVC paradigm and event oriented design principles. It utilizes the models, events, and event listeners of Swing and organizes the components as a hierarchy of containers with layout managers.
Version 2.0 comes with a completly rewritten rendering subsystem focusing on optimal stylability via CSS and new features like Drag & Drop support, context menus and Server-side code execution (AJAX).
Selected features of wingS 2.0 are:
* Comprehensive set of widgets including trees, tables, tabbed panes menus and more.
* Highly flexible dynamic layout managers
* Drag & Drop support
* Component context menus and tooltips
* Handling of browser back navigation
* Improved styleability via CSS
The distribution contains an extensive user documentation and various demo applications also available >>online. wingS is released under the LGPL licence. PermaLink
Go To wingS
|Helma is an open source web application framework for fast and efficient scripting and serving of your websites and Internet applications.
Go To Helma
|Restlet is a framework that brings the simplicity and efficiency of the REST architectural style to Java developers. It is composed of two parts, a neutral API and a reference implementation (Noelios Restlet Engine). It supports all REST concepts (resource, representation, data, connector, components, etc.) and is suitable for both client and server REST applications. The server connectors provided are HTTP (via Mortbay's Jetty or an adapter Servlet) and the client connectors are HTTP, JDBC, and SMTP (via JavaMail).
Go To Restlet
|The Brill Framework is an open source framework for developing transactional web sites using Java and XHTML. The Brill Framework was developed by Chris Bulcock, as a result of becoming frustrated with frameworks such as Apache Struts, which depends on Java Server Pages. The objective was to develop a framework that is simple, that supports WYSIWYG page editing and does not require Java code or special tags within the Server Pages.
Go To Brill
|ztemplates is a framework for creating web-applications based on Java 1.5.
* new and unique action processing module
* clean, technology agnostic urls
* fully JSP, Velocity and AJAX compatible
* invisible to the web-client
* convention over configuration
* small and modular
Go To ztemplates
|Aranea is an Open Source (APL 2.0) Java Hierarchical Model-View-Controller Web Framework that provides a common simple approach to building the web application components, reusing custom or general GUI logic and extending the framework. The framework enforces programming using Object-Oriented techniques with POJOs and provides a JSP tag library that facilitates programming web GUIs without writing HTML.
Go To Aranea Web Framework
|RSF is an open source web programming framework, with roughly the scope of Sun's JSF. RSF is written in Java, and is built on the Spring framework.
RSF features a pure-HTML templating engine named IKAT, which achieves the cleanest separation between presentation and logic yet made - build \"components\" using pure HTML and libraries of code rather than heavy framework base classes.
RSF also features a lightweight request-scope Spring clone, RSAC, which brings the magic benefits of inversion of control into the request scope.
RSF currently has integrations for Hibernate, JSR-168, Cocoon and Sakai.
Go To RSF
|Strecks is a set of extensions to the Struts web development framework aimed at Java 5 users. The aim of Strecks is to enhance the capability of Struts in terms of productivity and maintainability. Strecks makes use of Java 5 language features, in particular JSR-175 annotations, to simplify the programming model for Struts applications.
Go To Strecks
Go To Google Web Toolkit
|Aurora is an open-source MVC framework that is aimed at writing configurable, fully object-oriented form controllers using the Spring Framework. The code-base grew out of my experience using Spring's MVC module and slowly developed over several versions into a full-fledged framework that attempts at tackling the most common problems that I had when using Spring MVC and other J2EE web-related issues in general.
Go To Aurora
|ThinWire is a development framework that allows you to easily build applications for the web that look and feel like the desktop applications you're familiar with. Responsive, expressive & interactive user interfaces in your web browser without the complexity of the alternatives.
Go To ThinWire
|Roma Meta Framework is a Open Source initiative to make Java application development easy. The approach is totally DDD, let's think to the domain of your application and Roma will makes the rest: persistence (database), presentation (HTML + Ajax), logging, user management, sessions, etc.
Go To Roma Meta Framework
|Pustefix is a framework that helps you to develop web based applications.
The framework consists of two more or less independent parts:
A machinery to apply recursive XSLT transformations that produces the UI of the web application.
A Java framework that takes input from the UI to change the application data and supplies changes of the application data back to the UI.
Together, the framework acts similar to the Model-View-Controller pattern (as far as this is possible in the context of a web application).
Go To Pustefix
|jWic is a java-based development framework for developing dynamic web applications with the convenience and familiarity of 'rich client' style programming. The component-based, event-driven programming model makes it easy for developers to quickly create flexible and robust web applications.
The collection of standard jWic controls has built-in Ajax functionality to enhance the end-user experience. Developers can also implement their own jWic controls and combine and incorporate them into their web applications.
Go To jWic
|The Calyxo framework encourages in MVC model 2 based web application development. It offers support for true modular applications, i18n, a flexible view manager, a powerful validation engine, and more.
Go To Calyxo
|The Mentawai goal is to be a simple, flexible, joyful and productive Java web framework.
* Simple: Mentawai is very simple to install, configure and understand.
* Flexible: The Mentawai architecture is very flexible and well organized, enabling any mortal to create new functionalities to the framework by implementing its core classes. The core of the framework is all based on interfaces.
* Complete: Mentawai offers transparent solutions for the repetitive tasks of every web project.
* Joyful: Mentawai offers programatic configuration with 100% pure Java code.
* Productive: Mentawai offers simple and practical solutions to most of the web development problems, reducing the developing time.
Go To Mentawai
Features of Junction:
* Junction makes your web application perform great.
* Junction is a synchronizing MVC framework for building applications on top of Google Gears, but also does not require Google Gears if you don't want it.
* Junction automatically synchronizes your client-side and server-side code and RDBMS's.
* Junction still works even if the network is occasionally-connected or offline.
* Junction can run your application in the web-browser or on a Rhino-based server, or both. It's your choice. And, you write your application code just once to support these different runtime options. No duplicate logic.
Go To Trimpath Junction
|Makumba is a query-centric MVC web framework designed to build database-driven without advanced knowledge of database systems or Java. It is simple to configure and eliminates all the overhead usually needed to get data from the database to the view.
Its intuitive tag-library helps building complex sites in much less time than other frameworks.
Its main features are:
* Makumba List engine (using OQL/HQL as query language), to \"loop\" over records in the database and display them correctly according to their data type.
* Makumba Forms, supporting nested forms and making it possible to build complex forms without having to worry about how the data will get stored.
* Makumba Data Definitions (MDDs), an abstraction of the data model, making the model design very easy.
Go To Makumba
|AribaWeb is the Open Source component-based web application development framework for creating rich, AJAX-enabled applications with the
Discover the difference that sets AribaWeb apart: Auto AJAX, Instant App, Live Edit & X-Ray,Proven Full Stack
Go To AribaWeb
|[fleXive] is a Java EE 5 open-source framework for the development of complex and evolving (web-)applications. It speeds up development by easing many tedious and repetitive programming tasks and helping to keep your application(s) flexible during the development-cycle and in production.
[fleXive] concentrates on enterprise-scale content modeling, storage and retrieval, and includes comprehensive JSF support for displaying and manipulating these contents in (web) applications. The runtime environment can be included in existing Java EE applications, but you can also build new applications and package them into stand-alone Java EE applications.
[fleXive] provides essential features for data-centric applications:
* Secure EJB-based persistence engine
* Web development JSF toolkit
* Powerful administration interfaces
* Based on the latest industry-standards like Java 6, EJB 3, JSF, etc.
Go To fleXive
|A minimalistic framework that helps you in converting your Spring beans into HTTP-accessible controllers using one servlet and a few additional lines in your XML application context.
This framework uses Extensible XML authoring feature available in Spring and allows you to expose the bean using just one additional XML attribute on your bean.
Go To Flower framework
|Hamlets (previously known as IBM Servlet-based Content Creation Framework) is an open source system for generating dynamic web-pages originally developed by René Pawlitzek at IBM. A Hamlet is a servlet extension that reads XHTML template files containing presentation using SAX (the Simple API for XML) and dynamically adds content on the fly to those places in the template which are marked with special tags and IDs using a small set of callback functions. A template compiler can be used to accerate Hamlets.
Hamlets provide an easy-to-use, easy-to-understand, lightweight, small-footprint, servlet-based content creation framework that facilitates the development of Web-based applications. The Hamlets framework not only supports but also enforces the complete separation of content and presentation.
Go To Hamlets
|Induction is a powerful, high performance, Java MVC web application framework. Induction supports dynamic application reloading, type-based dependency injection and dependency analysis between models, views and controllers. The goal of Induction is to simplify the task of building complex, high performance, maintainable web applications using Java technology.
Go To Induction
|The JVx Framework (or JVx - Enterprise Application Framework) is a Full-Stack Application Framework for the Java platform. JVx facilitates the development of professional and efficient Database applications, in a short time and using little source code.
The framework's architecture is based on the Multi-tier architecture model for the development of software systems. Building on a three-tier architecture and following the Dependency inversion principle JVx allows for easy development of efficiently maintained applications. The framework provides full support for all tiers.
Because of the Single Sourcing principle, the application is coded once and used with different technologies (RIA, HTML/Ajax, Desktop).
Go To JVx
Go To jZeno
|Pandora is an easy to use, fast and lightweight framework for creating web applications with Java. Pandora uses Velocity for templating and provides support for Hibernate as persistence layer. It has great support for handling formular input with validators etc. and for lists, tables and trees (filtering, sorting, searching for free).
Go To Pandora
|The Play framework makes it easier to build Web applications with Java:
* Fix the bug and hit reload! Edit your Java files, save, refresh your browser and see the results immediately! No need to compile, deploy or restart the server.
* Stateless model Play is a real \"Share nothing\" system. Ready for REST, it is easily scaled by running multiple instances of the same application on several servers.
* Efficient template system A clean template system based on Groovy as an expression language. It provides template inheritence, includes and tags.
* Resolve errors quickly When an error occurs, play shows you the source code and the exact line containing the problem. Even in templates.
* All you need to create a cool web application Provides integration with Hibernate, OpenID, Memcached... And a plugin system.
* Pure Java Code with Java, use any Java library and develop with your preferred IDE. Integrates nicely with eclipse or netbeans.
* Really fast Starts fast and runs fast!
Go To Playframework
|SerfJ is the easiest way of developing Java REST web applications. It helps you to develop your application over an elegant MVC arquitecture, giving more importance to convention than configuration, so for example, you will not have to have configuration files or annotations in order to specify which view serves a controller's method. However, SerfJ is very flexible, so if you want to jump over those conventions, you can configure the behaviour of your applications as you like.
Go To SerfJ
|An AJAX framework to write database web applications with the target to edit and show the stored informations in different form windows. For this a simulated MDI-GUI gives the user the possibility to jumb between the form windows opened by himself. Tables has horizontal und vertical scrollbars. Between the server and the browser of the user the traffic is very small also in the case of very large tables because only the visible rows are transfered with AJAX.
The tutorial is currently in german language but the API documentation is in english.
Go To Sombrero
Go To Vaadin
|Vroom is a framework for HTML/JSP and Java code binding. It's extremely simple to use and very powerful. It can control your HTML widgets on the fly. It can be applied independently as JSP/Servlet Model or can be integrated with Struts, JSF, YUI etc. No custom tags, no complex configurations, just simple binding configuration file and backing beans.
Go To Vroom
|Free and Open Source Java project which brings together almost all the modern web tools: JsHint, CssLint, JsMin, Google Closure compressor, YUI Compressor, UglifyJs, Dojo Shrinksafe, Css Variables Support, JSON Compression, Less, Sass, CoffeeScript and much more. In the same time, the aim is to keep it as simple as possible and as extensible as possible in order to be easily adapted to application specific needs.
Go To wro4j