2014-04-07 49 views
2

我們對我們的項目有了更深入的瞭解,並且已經使用eclipse建立了一個基本的Web應用程序。每當我們試圖運行服務器,我們得到如下的404錯誤: enter image description hereJSP Tomcat不良資源

從我的研究中,我發現我需要某種類型的web.xml文件。應該在哪裏放這個文件應該在哪裏。我如何使它

+0

請檢查此問題http://stackoverflow.com/questions/11658104/where-is-web-xml-in-eclipse-projects – Umeshwali

回答

3

你的問題是你試圖訪問WEB-INF文件夾內的資源,這是不允許的,這就是你有這個錯誤的原因,你必須把jsp放在WebContent文件夾或任何WebContent文件夾下的文件夾。 WEB-INF \ classes包含您的Java類的.class文件,它不是放置任何資源的好地方。

由於Servlet的3.0規範,Web部署描述符(web.xml)是可選的。

我希望這可以幫助您解決您的問題

+0

它是一個很好的地方放置一個資源,只能訪問的代碼在後端,但不直接由用戶。例如,您想要讀取哪些用戶不應該訪問的配置文件。 – developerwjk

+0

我說WEB-INF/classes不是一個好地方,不是整個WEB-INF文件夾。很明顯他想訪問jsp文件,所以我認爲它與答案無關。 –

2

把JSP的WEB-INF下使他們無法進入,除非你在web.xml中映射他們WEB-INF的目的是隱瞞的事情,因爲用戶不能下載或在WEB-INF下訪問任何東西。你只把JSP的WEB-INF下,如果你不希望用戶能夠通過其真實姓名去那裏(即http://localhost/app/whatever.jsp),但希望將其映射到某個特定的URL(即http://localhost/app/somename/

映射一個JSP這是在WEB-INF的URL甘蔗與此在web.xml

<servlet> 
    <servlet-name>somename</servlet-name> 
    <jsp-file>/WEB-INF/whatever.jsp</jsp-file> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>somename</servlet-name> 
    <url-pattern>/somename/*</url-pattern> 
</servlet-mapping> 

當然做,如果你需要映射另一個URL的JSP,但不覺得有必要禁止用戶從它的.jsp文件名去那裏,你可以使用一個URL重寫過濾器。在這種情況下,將它放在WEB-INF下是毫無意義的。