I would normally ignore books with a title like Java Open Source Programming: With XDoclet, JUnit, WebWork, Hibernate (Java Open Source Library) – but this one is different.
For me the best thing about this book is that it shows you how experienced developers produce a well crafted, easy to test, web application. It walks you through using interfaces to separate the database from the code. It provides oooodles of examples of using mock objects to make testing easier. It shows how experts use Test Driven Development (TDD) on a real world (web) application.
Oh, and it uses some nice open source libraries along the way. One of the best ways to learn something new is to pair with an expert. The next best thing is to read a book like this!
Shame about the title!