in most cases, don't restart the application server. instead, you can start the related application context as bill said.
If you don't want to restart that application context, you may jump to the work directory and delete the correspondent servlet code. Next time if the servlet is accessed, the servlet will be recompiled and re-instantiated.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com