onde o Tomcat guarda as informações de mapeamento de servlet do arquivo web.xml? É possível manipular essas informações de mapeamento (sem edição do arquivo web.xml) em tempo de execução?
Ou seja, mapear ou desmapear uma servlet via código java.
Acredito que não seja possível não, a não ser uma servlet que não extenda de HttpServlet, no caso a que tenha métodos mais genéricos e não específicos para os métodos HTTP, mas de certa forma não sei lhe responder.
so se voce acessar diretamente a api do tomcat/catalina. mas o classloader da sua webapp vai bloquear voce, logo voce preicsa colocar um jar no lib do tomcat propriamente dito. vai ser uma meleca. tem certeza que voce precisa fazer isso programaticamente?
Eu, por exemplo, tive de fazer o seguinte: em uma aplicação minha com JSPs tive de mandar só o .class e não os arquivos .jsp.
Para isso funcionar, é necessário mapear esses .class que foram gerados pela compilação dos JSPs em algum lugar (como em web.xml).
Fiquei sem paciência (estudei o código-fonte do Tomcat e fiquei com sono) e fiz o seguinte: antes de iniciar o tomcat, varro um diretório em que o build.xml compilou os jsps e gerou os .class, e gero eu mesmo o web.xml antes de iniciar o tomcat. Não é tão lento quanto parece.