Java Can';不读取JSP中的属性文件

Java Can';不读取JSP中的属性文件,java,jsp,properties,stream,classpath,Java,Jsp,Properties,Stream,Classpath,以下JUnit测试正在我的应用程序中运行: @Test public void testMessageResources(){ final InputStream stream = getClass(). getResourceAsStream("/com/service/MessageResources.properties"); Assert.assertNotNull(stream); } 但在我的JSP中,我无法使用以下代码读取文件: <%

以下JUnit测试正在我的应用程序中运行:

@Test
public void testMessageResources(){
    final InputStream stream = getClass().
        getResourceAsStream("/com/service/MessageResources.properties");
    Assert.assertNotNull(stream);
}
但在我的JSP中,我无法使用以下代码读取文件:

<%
    final InputStream resourceAsStream = application.
        getResourceAsStream("/com/service/MessageResources.properties");
%>

resourceAsStream
始终为
null
。我正在使用JSP2.1


MessageResources.properties
文件位于类路径上,但不在JSP目录中。这是问题吗?

getClass().getResourceAsStream()在类路径中搜索文件,而application.getResourceAsStream直接在web应用程序中查找资源。因此目录“com”应该在web应用程序中,而不是在类路径中。

JSP使用的目录与
Class.getResourceAsStream()的作用不同。它不会在类路径中搜索资源。如果要使用
Class.getResourceAsStream()
,请使用
Class.getResourceAsStream()
。它还可以在JavaEE上下文中工作。只需确保使用从同一个类加载器加载的类作为加载属性文件的类

不过,这样的方法调用不应该在JSP中完成,而应该在一个Servlet或操作中完成,该Servlet或操作会向JSP发送命令。应该使用JSP生成标记