When I create a dynamic web project with Tomcat as my runtime, Eclipse creates a build directory. The problem is, none of these classes ever make it into WEB-INF/classes, so Tomcat can't find them when I choose "Run on server". What am I doing wrong?
Setup your project so that the build directory is WEB-INF/classes!
Normally, however, I build webapps with Ant, since I need to merge in other stuff and I've found that it's much safer to keep directories that I change separate from the directories that the tools change. There's ways to gimmick up Eclipse so that it will do pretty much everything my Ant build scripts do, but I've never made the effort.
An IDE is no substitute for an Intelligent Developer.