The JVM supports a feature called hot swapping (i think thats what it is called), where classes can be reloaded at run time. Most IDEs take advantage of this in debug mode. So a lot of the time i just launch my server in debug mode and edit freely. Occasionally i will have to restart the server, but it works surprisingly well. In fact you don't necessarily need an IDE to do this. A lot of servlet containers support this as well, where you can just copy updated jars to the servlet libs (obviously some simple scripts help a lot with this). After enough 'hot' deploys the JVM will eventually run out of perm-gen space, but even with that limitation you still get 10-20 edit-refresh cycles out of it.
Setting up your tools right can help a lot. Also, optimizing your build scripts. Ideally these will all work together to make it less painful :)