请教:如何在Servlet Web 应用中定制ClassLoader呀?

不知道你的具体应用情况。
但是如果你是想在 Servlet 应用中使用自己的 ClassLoader.
那你应该编写一个自己的 CLassLoader,然后在需要的地方将 Thread 当前的 classloader 切换成这个 classloader.
记住在你处理完资源后,应该将这个 classloader 切换回系统的 classloader. 否则后面的应用很可能不正常

在一般的有main()应用中实现较为容易,但在servet应用中又该如何替换系统默认的classloader呢?看到一偏文章说可以采用接口屏蔽原类的来做,却不知道到底怎么来做,不会是要更改服务器的系统类吧?!

参考jive中的ForumFactory类

在你的servlet的doGet or doPost方法加上这样的语句,就可以了:

yourClassLoader = new YourClassLoader();
Thread.currentThread().setContextClassLoader(yourClassLoader);

对于具体的代码的介绍,你可以查看API。

我个人不是很赞成直接在servlet里使用CLassloader,至少也要做个cache阿,这会影响速度的。

做cache就放到javabean中做了。

可以在自己实现的ClassLoader里面就加上Cache的功能. 每次需要LoadResource的时候就先从Cache找, 找不到从ClassPath里找, 再放到Cache里, 如果还是没有, 就throw ClassNotFound, 对速度没有影响的.