You could just generally use Apache in front of your tomcat install. Set up a redirect proxying rule to your tomcat. If that doesn't work, apache will send a "503 Service Temporarily Unavailable" which you could configure to be your maintenance page.
The apache application file would look somewhat like this
<VirtualHost *>
ServerName example.com
ServerAlias *.example.com
ServerAdmin [email protected]
RewriteEngine on
RewriteRule ^/static/(.*) /some/path/for/static/files/static/$1 [L]
RewriteRule ^(.*) http://127.0.0.1:8080$1 [P]
ErrorLog /var/log/apache2/example/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/example/access.log combined
ServerSignature On
ErrorDocument 503 /static/site_down.html
</VirtualHost>
The first rewrite rule changes all files in below a certain URI ( /static/ ) to a directory from which those static files are served directly without proxying. You could use this to serve all static resources from your website, too, which would somewhat make up for the general (small) performance loss of having an apache in front of your tomcat.
The ErrorDocument directive changes the normal 503 response to the document site_down.html lying in this static path.
For this to work you need to enable mod_rewrite and mod_proxy/mod_proxy_http and
enable the proxy in your apache2 config
<Proxy *>
Order Deny,Allow
Deny from all
Allow from all
</Proxy>