2012-08-02 100 views
5

在動態Web項目我有 - default.html和頁面鏈接的jsp

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<link rel="stylesheet" href="./Styles/Site.css" type="text/css" /> 
<title>Create new customer</title> 
</head> 
<body> 
    <a href="\WEB-INF\forms\CustomerMenu.jsp">Test new</a> 

</body> 
</html> 

我也CustomerMenu.jsp頁面 -

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<link rel="stylesheet" href="./Styles/Site.css" type="text/css" /> 
<title>Create new customer</title> 
</head> 
<body> 
    // Table .. 
</body> 
</html> 

的頁面層次結構是作爲快照 -

enter image description here

當我的鏈接按下default.html中,我得到錯誤信息

- HTTP Status 404 - 

-------------------------------------------------------------------------------- 

type Status report 

message 

description The requested resource() is not available. 

回答

9

文件中/WEB-INF文件夾也不是沒有使用前端控制器servlet或類似<jsp:include>這確實無論是RequestDispatcher#forward()RequestDispatcher#include()特定的標籤公開訪問。

如果您需要通過URL直接訪問JSP文件,那麼您不應該將JSP放在/WEB-INF文件夾中。將它放在/WEB-INF文件夾外

WebContent 
|-- forms 
| |-- CreateNewCustomer.html 
| |-- CustomerMenu.html 
| `-- CustomerMenu.jsp 
|-- WEB-INF 
: : 

並相應地修復鏈接。

<a href="forms/CustomerMenu.jsp">Test new</a> 
+0

只是BalusC的一個想法,說/ WEB-INF文件夾是否作爲Web容器的一部分受保護的文件夾,這就是爲什麼所有Web資產-images,css,js,...-都不包括在內。 – 2012-08-02 14:41:32

+0

@BalusC,WebContent中的文件夾必須調用「窗體」? – URL87 2012-08-02 15:40:25

+1

不是。你只是簡單地把它叫做它。我只是沒有觸及它。我所做的只是把文件夾移到正確的地方。只要它是可公開訪問的,您可以任意命名/構造它。你甚至可以完全擺脫它,只是把它的文件直接放在根文件夾('WebContent'文件夾,那裏'default.html'文件也在那裏)。 – BalusC 2012-08-02 15:41:09

1

WEB-INF文件夾不能在外面訪問。 您需要將jsp移動到WEB-INF之外或使用轉發請求轉發到jsp。