There may be
Java API in the jar/zip handing utility classes that can help you read a manifest, but that sounds like a lot of work.
What I do is to have the ant script build a properties file with all the build and version info. This properties file is placed in WEB-INF and read by a context listener which loads a Map with all the properties it finds in the file and places it in the app context where it available to every resource in the web application.
Using a database or other external storage for the version info is doomed to failure as there is nothing to ensure that the app and the database info are kept in sync. Making it part of the build does.
I'm not sure what your beef with checking things into SVN is -- that's what version control systems are for. I not only check the version information in, but for deployed versions I create an SVN tag so that the release is easily recreated. If you're not checking the version info into source control, you are losing that information and making it harder to keep track of the app's revisions.
[ May 08, 2007: Message edited by: Bear Bibeault ]