私はEclipseで動的Webプロジェクトを持っています。a.xml
クラスパスに存在するWEB-INFにファイルがあります。Test
私のプロジェクトで名前が付けられたクラスがあります。
JSPスクリプトレットに次のコードがあります-
<%@page import="com.kshitiz.Test"%>
<%
System.out.println(ClassLoader.getSystemClassLoader().getSystemResource("a.xml"));
System.out.println(this.getClass().getClassLoader().getSystemResource("a.xml"));
System.out.println(Test.class.getClassLoader().getResource("a.xml"));
%>
出力は -
null
null
C:/Users/kshitiz/eclipse/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/test-project/WEB-INF/classes/a.xml
システム クラス ローダと JSP クラスローダがファイルを見つけられないようです。
出力について説明していただけますか?Tomcat は別のクラスローダーを使用して JSP をロードしていますか? なんでそうなの?システム クラスローダがファイルを見つけられないのはなぜですか?
以下を使用して自分のファイルにアクセスできることはすでに知っています-
getServletContext().getResourceAsStream("/WEB-INF/a.xml");
そのファイルをロードするためのさまざまな方法ではなく、上記のシナリオを理解することに興味があります。