Shocking, I know, but there you are. The Top Five Reasons to Choose J2EE as Your Application Server Platform.
The reasons are:
1. Integration
2. Compatibility
3. The J2EE Programming Model
4. Web Services Support
5. Open Standards: Safety and Freedom
Via TheServerSide.com.
See the Python (imperative) version, and the Java version.
Now, this is totally unfair to Java - this is exactly the sort of job that you shouldn't use it for. What it does demonstrate is the importance if picking the right tool for the job.
As to the functional version of the Python script, well, it looks ghastly to me. But that's probably more to do with the fact that I'm not used to fuctional programming than anything else - I'm sure that Alex's code is fine, and that a functional style is appropriate to the task. But if you haven't grokked functional programming yet, it just looks wrong.
Is that your final answer? Guidelines for the effective use of the final keyword.
Jakarta Struts: Seven Lessons from the Trenches
Programming Jakarta Struts is going to be a must. ;-)
See also JSPs, the MVC model, and Struts.
Also, a series of articles on the JSP Standard Tag Library - parts one, two and three.