Depends. App-specific jars should go in the app's WEB-INF/lib. Jars Shared between all apps should go in $CATALINA_HOME/shared/lib. Jars shared between all app and Tomcat itself should go in $CATALINA_HOME/common/lib. And yes, when you change jars you must restart the app or server as appropriate (though Tomcat 5 is pretty good about doing it on its own when it detects the change and auto-reload is enabled).