Updates

Latest Tweet



What's New?

Check out for latest innovation, a computer based training video collection


Like this Page

Art of Java Web Development: Struts, Tapestry, Commons, Velocity, JUnit, Axis, Cocoon, InternetBeans, WebWork Review by anonymous

Popular Java Frameworks

This book is not for beginning web programmers as it assumes an understanding of the Servlet & JSP API's. It additionally is not a guide to Java Web Development as the title might indicate but rather a review of how and why to use several popular Java Frameworks. The books usefulness is that it compares and contrasts various ways to create "industrial strength" web applications.

Often it is difficult for a developer to understand the consequences of selecting a particular framework. This text resolves that dilemma by presenting six of them side by side. After reading these summary chapters a knowledgeable choice may be made or at least the options are narrowed down and a more exhaustive text obtained.

The author follows a teaching style as he explains his points using clear (and short) code examples. Practical loosely coupled designs are advocated thoughout the text. A section is devoted to summarizing common performance and debuging tips. It was nice to incude two IDEs although I'd have liked to see that part expanded to include *** WebSphere, WebLogic, NetBeans, Eclipse.***

One of the few disagreements that I have is about a common code oversight involving database resources.

The text provides a code sample showing how to connect to a database with all of the resources closed in a single finally block. IMHO, That's not a good style. I prefer to wrap each close in separate try blocks inside of the finally so that every close executes even if there are exceptions. Then reset object references back to null.

example:
// -- clean up all db resources after the usual try catch code
finally {
if(resultSet != null) {
try {
resultSet.close( );
}catch(SQLException sqle) { /* log or do nothing */ }
resultSet = null;
}
if(statement != null) {
try {
statement.close( );
}catch(SQLException sqle) { /* log or do nothing */ }
statement = null;
}
if(connection != null) {
try {
connection.close( );
}catch(SQLException sqle) { /* log or do nothing */ }
connection = null;
}
}// end

Another nitpick is the short publisher specific bibliography but, most would understand that choice as a marketing decision!

If you are considering using a web framework then you can save research time by reading this book first.