2012-08-02 13 views
5

In Project Web dinamica che ho - default.html paginacollegamento da html a 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> 

ho anche la pagina 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> 

La gerarchia pagine è come l'istantanea -

enter image description here

Quando premo sul link in default.html ricevo il messaggio di errore

- HTTP Status 404 - 

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

type Status report 

message 

description The requested resource() is not available. 

risposta

9

file nella cartella /WEB-INF non sono accessibili al pubblico senza utilizzare un front controller servlet o un tag specifico come <jsp:include> che fa o un RequestDispatcher#forward() o RequestDispatcher#include().

Se è necessario accedere a un file JSP direttamente da tramite URL, non posizionare il JSP nella cartella /WEB-INF. Mettere al di fuori della cartella di /WEB-INF

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

e riparare il link di conseguenza.

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

solo un'emulazione di BalusC dice, la cartella/WEB-INF se protetta come parte di un contenitore web ed è per questo che tutte le risorse web -images, css, js, ...- non sono incluse all'interno. –

+0

@BalusC, la cartella in WebContent deve essere chiamata "moduli"? – URL87

+1

No. Era proprio come * lo * si chiamava originariamente. L'ho solo intatto. Tutto ciò che ho fatto è stato spostare la cartella nel posto giusto. Puoi nominarlo/strutturarlo come vuoi purché sia ​​pubblicamente accessibile. Puoi anche eliminarlo del tutto e mettere i suoi file direttamente nella cartella principale (la cartella 'WebContent', dove si trova anche il file' default.html'). – BalusC

1

WEB-INF non è accessibile dall'esterno. Sarà necessario spostare il jsp all'esterno di WEB-INF o utilizzare la richiesta di inoltro per inoltrare il jsp.