2011-11-04 103 views
0

在我的Web应用程序中,我有一个充当索引的servlet。它绑定/映射到“index.jsp”(index.jsp 实际上不存在),但它被称为“Index.java”。客户端可以去index.jsp(这将通过servlet),但如果客户端试图直接去Index.java 它会说它找不到资源。为什么是这样?为什么.java文件(servlet)无法访问客户端?

我知道WEB-INF/META-INF中的文件/文件夹不能被客户端访问,但为什么不是.java文件?我的意思是,这是有道理的(因为你不应该直接去他们),但是发生了什么事情来阻止用户访问?

回答

2

通常情况下,所有的Java类被编译成.class文件(并可能被放置在一个罐子里),并放置WEB-INF/classesWEB-INF/lib下,因此,无法通过公共访问(因为WEB-INF下的一切是不能公开访问)。此外,除非您明确将.java源代码包含在战争中(构建战争时),否则甚至不会在servlet容器中找到.java文件(在您的情况下为Index.java)。因为代码会一直被编译成.class文件,并在战争/耳无法访问客户端(在WEB-INF/classesWEB-INF/lib)的区域

+0

谢谢,这样做很有道理! – Johannes

+0

很高兴帮助。考虑接受答案,如果它回答/解决你的问题 – ryanprayogo

+0

当然,我只需要等待最少的时间接受答案:] – Johannes

1

Java源代码不会是客户端访问。