The online manuals at
http://tomcat.apache.org are pretty useful.
However, I think a bigger problem you have is that you don't understand
J2Ee itself well enough.
J2EE partitions resources into web applications. Web applications are packed into WAR files, one application per WAR. The exact structure of the WAR is defined by the J2EE specification, and it includes directories such as the WEB-INF/lib and WEB-INF/classes directories.
Tomcat is one of several webapp severs that support what are known as "exploded WARS". An exploded WAR is simply a WAR that has been unzipped into a filesystem directory, You cannot just splatter files all over your disks and have a J2EE webapp. They all have to be related to each other in a directory structure that reflects the original WAR.
When you deploy a webapp, you have to have 2 resources known as "deployment descriptors". One of these descriptors is the WEB-INF/web.xml file and it contains server-independent deployment information defined as part of the J2EE spec. In Tomcat, the other descriptor is the Context, and you can either supply your own or Tomcat will synthesize one from default values.
The Context defines a number of things, one of which is the
context root path of the URL. Since Tomcat can host multiple apps concurrently, the context root determines which app will receive a URL request, based on a match between its context root definition and that part of the URL.
Warning Context Root path is
ignored in certain cases. For example, when you place your Context file in the TOMCAT_HOME/conf/Catalina/localhost directory, the context root in the Context file is ignored under Tomcat 6, and the Context filename itself (minus the ".xml") is used as the context root.
The Context head element also contains a codeBase reference, which defines where the WAR itself is located. This information is ignored when a webapp is deployed to a designated webapp directory such as the TOMCAT_HOME/webapps directory.
Context may be taken from a number of places, in order of ascending precedence:
1. It will be synthesized, if no Context is supplied
2. It will be pulled from the WAR's META-INF/context.xml file if the WAR is copied to TOMCAT_HOME/webapps.
3. It will taken from a TOMCAT_HOME/conf/Catalina/localhost/xxxxx.xml. Make "xxxxx" be the context name you want to use.
4. It will be taken from a Context element in TOMCAT_HOME/conf/server.xml. But don't ever do that!
I'm afraid that the various tricks you've been doing are misuses of advanced Tomcat features. At best, you're substituting cleaner, general-application functions for more arcane, less standardized services. At worst, you could end up digging a very deep hole.
So my recommendation is to study up on the basic J2EE component concepts and read the Tomcat docs.