poco me encontré con este tema, así y esto es lo que encontré, (Esto es todo desde Tomcat 7 tronco)
En primer lugar, If left as blank, the "common" loader will be used as Catalina's "shared"/"server" loader.
Aquí es el relevante source,
89 private void initClassLoaders() {
90 try {
91 commonLoader = createClassLoader("common", null);
92 if(commonLoader == null) {
93 // no config file, default to this loader - we might be in a 'single' env.
94 commonLoader=this.getClass().getClassLoader();
95 }
96 catalinaLoader = createClassLoader("server", commonLoader);
97 sharedLoader = createClassLoader("shared", commonLoader);
98 } catch (Throwable t) {
99 handleThrowable(t);
100 log.error("Class loader creation threw exception", t);
101 System.exit(1);
102 }
103 }
106 private ClassLoader createClassLoader(String name, ClassLoader parent)
107 throws Exception {
108
109 String value = CatalinaProperties.getProperty(name + ".loader");
110 if ((value == null) || (value.equals("")))
111 return parent;
Por lo tanto, si no se define nada, recurren al uso de las entradas common.loader.
En cuanto al orden en que se cargan en, aquí es la fuente para cargarlos en, desde source
229 Thread.currentThread().setContextClassLoader(catalinaLoader);
230
231 SecurityClassLoad.securityClassLoad(catalinaLoader);
232
233 // Load our startup class and call its process() method
234 if (log.isDebugEnabled())
235 log.debug("Loading startup class");
236 Class<?> startupClass =
237 catalinaLoader.loadClass
238 ("org.apache.catalina.startup.Catalina");
239 Object startupInstance = startupClass.newInstance();
240
241 // Set the shared extensions class loader
242 if (log.isDebugEnabled())
243 log.debug("Setting startup class properties");
244 String methodName = "setParentClassLoader";
245 Class<?> paramTypes[] = new Class[1];
246 paramTypes[0] = Class.forName("java.lang.ClassLoader");
247 Object paramValues[] = new Object[1];
248 paramValues[0] = sharedLoader;
249 Method method =
250 startupInstance.getClass().getMethod(methodName, paramTypes);
251 method.invoke(startupInstance, paramValues);
Línea 229 conjuntos common.loader el cargador de clases, luego la línea 251 conjuntos de las El cargador de clases shared.loader se establece como el cargador de clases padre de Catalinas.
Vea también http://stackoverflow.com/questions/5474765/order-of-loading-jar-files-from-lib-directory – rogerdpack