Java 从JSP中的属性目录获取文本文件

Java 从JSP中的属性目录获取文本文件,java,jsp,servlets,Java,Jsp,Servlets,我有: 一个名为index.JSP的JSP文件,其中包含以下代码: <% JSONVerschillendeTalen jsonVerschillendeTalen = JSONVerschillendeTalen.getInstance(); JSONObject algemeenJSON = null; JSONObject indexJSON = null; try { indexJSON = jsonVerschillendeTale

我有:

一个名为
index.JSP
的JSP文件,其中包含以下代码:

<%
    JSONVerschillendeTalen jsonVerschillendeTalen = JSONVerschillendeTalen.getInstance();
    JSONObject algemeenJSON = null;
    JSONObject indexJSON = null;
    try {
        indexJSON = jsonVerschillendeTalen.getJSONObject(request, "Index.txt");
        algemeenJSON = jsonVerschillendeTalen.getJSONObject(request, "Algemeen.txt");
    } catch (ParseException e) {
        e.printStackTrace();
    }
%>
public class JSONVerschillendeTalen {

    private static JSONVerschillendeTalen jsonVerschillendeTalen = new JSONVerschillendeTalen();
    private JSONParser jsonParser = new JSONParser();

    public static JSONVerschillendeTalen getInstance() {
        return jsonVerschillendeTalen;
    }

    public JSONObject getJSONObject(HttpServletRequest req, String bestandsnaam) throws IOException, ParseException {
        return (JSONObject) jsonParser.parse(new FileReader(getClass().getClassLoader()
            .getResource("NL/" + bestandsnaam).getPath().replaceAll("%20", " ")));
    }

    private JSONVerschillendeTalen() {

    }

}
每当我在一个普通类(用于测试)中运行
index.jsp
文件中的代码时,它就会工作。当我在jsp文件中运行相同的代码时,它不会。有人知道为什么吗

尝试使用
getClass().getResource()
而不是
getClass()。getClassLoader().getResource()
。第二种方法是相对于
ClassLoader
root搜索资源,它很可能与web容器中的源目录不同

下面对两者之间的差异进行了很好的解释。

尝试使用
getClass().getResource()
而不是
getClass()。getClassLoader().getResource()
。第二种方法是相对于
ClassLoader
root搜索资源,它很可能与web容器中的源目录不同


下面对两者之间的区别有一个很好的解释。

我知道,避免在jsp页面中使用java代码,但是如果有人手动转到以.jsp结尾的链接,则页面不包含任何文本,因为JSON文件包含网页的文本。是否有任何异常?NullPointerException。
.getResource(“NL/”+bestandsnaam)
返回null。我知道,避免在jsp页面中使用java代码,但如果有人手动转到以.jsp结尾的链接,则该页面不包含任何文本,因为JSON文件包含该网页的文本。是否有任何异常?NullPointerException。
.getResource(“NL/”+bestandsnaam)
返回null。