2009-09-28 11 views
7

Sto seguendo questo esempio per ottenere Sgorga & esecuzione: http://static.springsource.org/docs/Spring-MVC-step-by-step/part2.htmlTomCat 6: la pagina di benvenuto può trovarsi all'interno di WEB-INF?

Quello che fanno è spostare tutti i file .jsp all'interno della WEB-INF, per impedire agli utenti che vi accedono direttamente ... finora tutto bene. Comunque il servlet ha una pagina di benvenuto index.jsp, e quando questo viene spostato all'interno della directory WEB-INF ottengo errori. Non riesco a determinare se Tomcat 6 dovrebbe consentire che la pagina di benvenuto si trovi all'interno di WEB-INF o no?

risposta

7

Non è possibile accedere direttamente a WEB-INF, ma prima deve passare attraverso qualcos'altro (di solito un servlet), che quindi inoltra la richiesta internamente alla risorsa WEB-INF.

3

Sto provando lo stesso tutorial. Il tutorial non dice questo, ma ho cambiato il valore nel mio web.xml da "index.jsp" a "/WEB-INF/jsp/index.jsp".

1

Io uso questa tecnica (che lavorano per Servlet API> = 2.4):

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
    <url-pattern>/index.htm</url-pattern> <<== *1* 
</servlet-mapping> 
<welcome-file-list> 
    <welcome-file>index.htm</welcome-file> <<== *2* 
</welcome-file-list> 

in modo non è più necessario redirect.jsp con:

<% response.sendRedirect("/myproject/MyAction.action"); %> 

nella directory non WEB-INF !!

Qui due blog con stessa tecnica:

UPDATE Da SRV.9.10 Welcome Files sezione della documentazione Servlet API 2.4^

 
The purpose of this mechanism is to allow the deployer to specify an ordered 
list of partial URIs for the container to use for appending to URIs when there is a 
request for a URI that corresponds to a directory entry in the WAR not mapped to 
a Web component. This kind of request is known as a valid partial request. 

The use for this facility is made clear by the following common example: A 
welcome file of `index.html' can be defined so that a request to a URL like 
host:port/webapp/directory/, where `directory' is an entry in the WAR that is 
not mapped to a servlet or JSP page, is returned to the client as `host:port/ 
webapp/directory/index.html'. 
+0

Questa risposta presuppone Spring, ma nulla nella domanda indica che OP sta usando Spring. – BalusC

+0

Perché? Si basa sulla sezione 'Files di benvenuto SRV.9.10' della documentazione della Servlet API 2.4. Non ci sono parole chiave * Spring * ... – gavenkoa

+0

'dispatcher' su'/'è il classico Spring. – BalusC