About the Site

The Wonderful Web Tools site is a site for (hopefully) helpful and/or amusing tools written using Java and J2EE technologies. The technologies used for some of the tools are listed below:

TechnologyReferenceComments
 Framework Spring Framework The choice was between Struts and Spring. I had done a couple of projects using Struts, so Spring was a better choice for me for a learning perspective. I like its dependency injection (inversion of control) features, as well as its aspect oriented programming.
 MVC Layout Framework Site Mesh Having worked with Struts Tiles on Struts projects, I wanted to try something different. SiteMesh allows me to add in headers, footers, etc. using a servlet-filter approach. It is powerful and fairly easy to use.
 Database MySQL I use Derby locally, but MySQL was easier to implement on my provider. Fortunately, based on the way I have abstracted the data access, only minimal changes were required to switch database types.
 Database Access JDBC Uses Jakarta's Database Connection Pool component for the ability to use a datasource to access the underlying DB. Uses the org.apache.commons.dbcp.BasicDataSource class for the datasource, Spring's JdbcTemplate for the template and custom classes for JDBC access.
 Email Jakarta Commons Email Spring provides 'built-in' support for email sending. I will most likely hook this in eventually, but for now I am using Jakarta's commons-email component for this, as iit was very quick and easy to set up.
 Logging Log4J Using Spring's Aspect-oriented nature, I used MethodBeforeAdvice and AfterReturningAdvice classes to provide debug logging functionality to the site navigation without adding logging code to the components directly -- as well as to prove/demonstrate the technology. I have added logging statements to some components directly where I could not get the detail I needed using aspects. I am using Log4J with a RollingFileAppender for the logging itself.
 Search Google Currently I am using Google for search of the site. I have used Lucene for search in many cases, but wanted to take advantage of what Google was offering to see how well it will work for me.
 Sudoku AJAX The site uses plain J2EE to solve the sudoku puzzles and perform validations. The puzzle uses AJAX to perform both the solving and the validations without needing to repost the page.