I've already raved about the Python language for Web application
development, so equal time for Java is in order. As big a fan of Python
as I may be, I must admit that for server-side Web applications
development Java is by far the most mature and flexible of the options
available. Java as a language may be wordy and less appealing than
Python, but Java Server Pages (JSP), JavaBeans, and JSP Custom Tag
Libraries are much more mature.
As I've complained loud and often, server-page solutions can encourage
bad coding practices because they tempt people to integrate too much
HTML with their code. JSP by itself is no exception. But once JSP
programmers learn how to use JavaBeans and Custom Tag Libraries, they
are likely to employ them in a project to reduce duplication of effort.
As a side benefit, the use of JavaBeans and Custom Tag Libraries
encourage programmers to design applications that allow HTML designers
to create pages without much actual Java code.
Tomcat and Apache are the de facto standards for using Java for Web
applications in the open-source world. The first place to look for
information is the site jakarta.apache.org, which will take you to the
Jakarta Project site. Jakarta is the name for the Apache mother project
that encompasses Tomcat. You can use Tomcat with the open-source AOL
Web server, too, but most of the work is being done using Apache.
An even better resource is David Harms' book "JSP, Servlets, and
MySQL," recently published by M&T Books. The title is a bit misleading
in that it specifically names MySQL as the database of choice. Although
it focuses on MySQL as the basis for its tutorial and examples, the
book is great to have regardless of what database you intend to use.
Indeed, this book is an oasis among dunes of useless materials on the
topic of JSP and servlets. Harms doesn't fatten his book to appeal to
publishers. Every ounce is there for a reason.
Most importantly, Harms nails down his audience perfectly. He doesn't
assume too much or too little about the reader, so I wasn't running to
the Web to find out more details or skimming pages because I was bored.
That's quite a feat considering the chapters cover topics with which I
am already quite familiar. I read them not because I needed to but
because Harms added some nice tips and other tidbits to my knowledge.
One of the most beneficial things you can glean from this book is the
advice and know-how to create a properly partitioned Web application.
Harms devotes a section of the book to the Model View Controller
approach to development, but this coding practice is kept in mind
throughout the whole work. As a result, readers aren't likely to go off
half-cocked and integrate too much Java code into their HTML just
because they discover early in the book that it is possible to do so.