2011-11-04 82 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源代碼不會是客戶端訪問。