2012-06-20 56 views
0

我確信我犯了一些瘋狂的錯誤,但無法弄清楚。我剛剛安裝了Tomcat 7.0並部署了包含幾個JSP(簡單測試)的「app」。但是,當我運行tomcat並嘗試訪問這些頁面時,如果我將它放在「welcome-file-list」中,並且無法以任何其他方式訪問它,我只能訪問JSP。有人可以幫忙,因爲我無法弄清楚我做錯了什麼。Tomcat找到歡迎文件,但無法找到其他JSP

這裏是web應用程序結構 -

sampleapp - 
    /META-INF 
    /javascripts 
    /stylesheets 
    /WEB-INF 
     web.xml 
     /lib 
     /classes 
     /jsp 
     /test1.jsp 
     /test2.jsp 

這裏是web.xml中。這真的沒有任何關係,除了歡迎文件列表 -

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 
    <display-name>sampleapp</display-name> 
    <servlet> 
    <servlet-name>default</servlet-name> 
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> 
    <init-param> 
     <param-name>debug</param-name> 
     <param-value>0</param-value> 
    </init-param> 
    <init-param> 
     <param-name>listings</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet> 
    <servlet-name>jsp</servlet-name> 
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> 
    <init-param> 
     <param-name>fork</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <init-param> 
     <param-name>xpoweredBy</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>/</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
    <servlet-name>jsp</servlet-name> 
    <url-pattern>*.jsp</url-pattern> 
    <url-pattern>*.jspx</url-pattern> 
    </servlet-mapping> 
    <welcome-file-list> 
    <welcome-file>/WEB-INF/jsp/test1.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

在這個例子中,我也歡迎文件設置爲test1.jsp所以當我運行Tomcat和訪問默認的應用程序作爲http://localhost:8080/sampleapp,它成功加載test1.jsp的內容。但是,如果我嘗試訪問test2.jsp的路徑,我無法這樣做。同樣,如果我將welcome文件設置爲test2.jsp,則只需訪問http://localhost:8080/sampleapp即可訪問它,但是當我試圖顯式訪問test1.jsp或test2.jsp時,它將返回404錯誤。

任何人都可以幫助弄清楚什麼是錯誤的?

回答

3

WEB-INF目錄無法從外部訪問。如果您想從外部訪問JSP,則必須將它們放在WEB-INF之外。

+0

唉,多麼瘋狂的錯誤。感謝您快速指出:)。我正在通過Spring實現,並在測試其他某些東西時想直接訪問某些文件。 – JUG

0

由於您的項目不是以標準Java Web項目格式存在,因此您無法訪問。首先,您需要將Web內容放在WEB-INF文件夾之外。有點像WebContent文件夾,然後在您的文件夾中定義上下文web.xml中。