I am doing some research on Java web development frameworks for an upcoming
article and a Java Users Group (JUG) presentation. The goal of my research is
to show how using frameworks for Java web development reduces development time
and increases application quality. I have worked on numerous web development
projects, and I have seen many people "reinvent the wheel", when using an
existing framework would have resulted in better, more maintainable code with
less work. I think that frameworks fill an important gap between the base Java
API's (JSDK + JSP + servlet engine) and the high end EJB application servers.

I plan on first developing a simple application using nothing but the JSDK and
JSP on the Tomcat reference implementation. Then, the same application will be
rewritten using a few of the major frameworks. The resulting applications will
be compared in terms of ease of development, quality of code, and some basic
performance metrics.

I am trying to identify frameworks that meet all the required criteria, and
any of the extra criteria, listed below. If anyone can suggest a framework that
meets these requirements and is not listed below, please send me an email
off-list. When I have completed my research, I will post my findings to the
list. Any other comments or suggestions are also welcome.

Required Criteria:

* The framework must be compatible with any platform supporting Java Servlet API
2.1 or greater, and JavaServer Pages 1.0 or greater.
* The framework must support and facilitate the "Model 2" Architecture, i.e.
the Model - View - Controller (MVC) design pattern in which a template or JSP
page serves as a view, a servlet serves as a controller, and javabeans or other
components serve as the model.
* The framework must provide methods to secure resources and authenticate
users.
* The framework must provide database connection pooling.
* The framework must facilitate database persistence through database objects
that abstract away some of the complexities of SQL and JDBC. The persistence
layer should support a number of major database platforms.
* The framework must have facilities to log errors and events.

Extra Criteria:

* Object Caching
* Open Source License
* Job Automation
* Administrative screens for application administration, database connection
pool allocations, etc.
* Compatibility with EJB's
* Object - Relational Database mapping capabilities

So far, I have identified the following Java web frameworks that meet these 
requirements:

Expresso
http://www.javacorporate.com

Turbine
http://java.apache.org/turbine/

the WebApp Framework
http://www.webapp.de/

Webmacro
http://webmacro.org/

Note: I have also taken a close look at the STRUTS framework
(http://jakarta.apache.org/struts/index.html) developed by Craig R. McClanahan.
This appears to be an excellent tool for creating MVC designs. However, the
STRUTS framework was designed to be more lightweight then the frameworks listed
above, and does not include (to my knowledge), facilities for security,
persistence, etc. Nonetheless, the STRUTS framework has the best MVC
architecture that I have seen, and it is definitely worth a look for anyone
interested.

Thank you for you help.

Regards,

Adam Rossi
PlatinumSolutions, Inc.
http://www.platinumsolutions.com
[EMAIL PROTECTED]

___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".

Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html

Reply via email to