When deploying a large Java webapp (>100 MB .war) I\'m currently use the following deployment process:
This is dependant on your application architecture.
One of my applications sits behind a load-balancing proxy, where I perform a staggered deployment - effectively eradicating downtime.