The Windows file system is extremely aggressive about holding onto file locks for open files - this makes it effectively impossible to redeploy webapps into Tomcat reliably on a Windows platform.
If you are developing on Windows, you will want to add the antiResourceLocking and antiJARLocking attributes to your base context file context.xml ($CATALINA_HOME/conf/context.xml), so that it reads as so:
The "antiJARLocking" attribute is possibly unnecessary. These options are documented on the Tomcat site at
Note that the way this option works is to make a completely clean copy of the entire webapp into a private "temp" directory whenever it detects a redeploy. This in theory will slow up deployment and chew up disk space, but in practice on modern machines the delay is barely noticeable, even when deploying bulky webapps.
Don't forget to look into $CATALINA_HOME/temp and clean it out from time to time, since the same resource locking issues prevent Tomcat from being able to delete stale versions of your webapps.