It seems to me that what the OP really should use is a mature framework e.g. Drupal rather than rolling your own regardless of language choice.
BUT since this thread has evolved into a language choice I'm going to respond to that. I'm also going to come right out and say that this post will be very unpopular on Slashdot. [Hopefully I won't get sunk by too many mods saying -1 "opposite of my fanaticism." ] ColdFusion has a pretty narrow applicability, but it's ideal for the OP.
Con: ColdFusion per se is not free in source or beer. (allthough there are ports) BUT shared hosting is only infinitesimally more expensive, so this is an issue only if you'relocked into a certain host or you are goign to have aan armada of servers. [The local dev version IS free.]
Con: ColdFusion is not very popular. There's still a LOT more usage than most people seem to perceive, but it's obviously not up there with e.g. PHP. [Commercially ColdFusion missed its window. In ~1998 database driven web applications were relatively novel and it was awesome. In 2001 it was comparatively unstable at higher traffic values. In 2002 they threw out the underlying server product and now it's an interpreter plugin that runs on any J2EE server you want it to.]
Pro: CF is a mature, modern flexible, powerful, rapid development toolchain for making websites. Especially as a novice in web apps it's going to support you. It'll let you worry about your app and not the minutia and has automatic capabilities for all sorts of things. It does the right thing by default but lets you override if it you need to. [Aside: These advantages are rather similar to what's advertised for RoR which IS free... If anyone can tell me some awesome thing RoR does for a website that CF doesn't beyond the two "cons" I've listed above I'd really like to know -- so far no one has been able to give me a good one. I'm excluding outdated concerns e.g. that the 1999 version of CF wasn't OOP.]
Pro: CFML is a pretty ideal language for generating HTML because as a markup language the flow of your HTML remains obvious and readable. [PHP eventually adopted the ability to use a similar paradigm.]
I've heard some people say that CF is what Java Server Pages should've been.
Pro: CF IS Java. (server) You're running on a Java server and the things you already know about running that remain true.
Pro: CF IS Java. (language) Even moreso, you can literally inline Java code into CF code (much like old school ASM into C). In my time writing CF I've done this literally twice:
a. to use Java's sleep() [Note: I do not recommend using "sleep" when generating a webpage, but it was an exceptional circumstance.]
b. to use Java's image manipulation libraries from CF templates.
I'm not saying CF is ideal for all circumstances. Merely being non-free rules it out of a lot! But it really is -- at least in my opinion -- "how to build a web app on a Java server" and that has a lot of suitability as a platform for the OP.