请教几个关于classloader的问题

请问WAR中的jsp文件是通过classloader来load的吗?


第二,不是说web app不能读写War以外的任何文件,但是好像log可以写到外面的文件中,

第三,WEB app classload优先读取War中的coderesource,这样岂不是覆盖java中的类库,这样岂不是很危险啊

对这三问题非常疑惑,谢谢解答。

1> jsp文件不会被classloader加载,而是其编译生成的class文件被加载

2> “web app不能读写War以外的任何文件”,没这一说。你可以随意访问文件系统都没有关系。Log4j就是一例。

3> “WEB app classload优先读取War中的coderesource”,这只是sun的建议,不是必须的。至于应用服务器的classloader具体有没有采用sun的建议,要看一下文档了。而且只要你不在web-inf/lib/里面放核心类库不就行了:)

多谢解疑。

1>.我的意思是说,jsp文件是不是一定要放在规定coderesource上才能被load,比如WEB-INF/classes, WEB-INF/lib下,但我看的例子是放在WEB-INF/jsp下面,请问这是为什么?

2>这个搞混了,呵呵,应该是EJB不能进行I/O操作的,

对于Web容器来说,缺省的是在WEB-INF/classes, WEB-INF/lib下。