2009-09-28 11 views
7

Obserwuję ten przykład, aby uzyskać wyrastają & trwania: http://static.springsource.org/docs/Spring-MVC-step-by-step/part2.htmlTomCat 6: czy strona powitalna może znajdować się w WEB-INF?

Co zrobić, to przenieść wszystkie pliki .jsp wewnątrz WEB-INF, aby zatrzymać użytkownikom dostęp do nich bezpośrednio ... tak daleko tak dobry. Jednak serwlet ma stronę powitalną index.jsp, a kiedy zostanie przeniesiony do katalogu WEB-INF, dostaję błędy. Nie mogę ustalić, czy Tomcat 6 powinien pozwolić stronie powitalnej być wewnątrz WEB-INF, czy nie?

Odpowiedz

7

Nic bezpośrednio w WEB-INF, ale najpierw trzeba przejść przez coś innego (zazwyczaj serwlet), który następnie przekazuje żądanie wewnętrznie do zasobu WEB-INF.

3

Próbuję tego samego samouczka. Samouczek tego nie mówi, ale zmieniłem wartość w moim web.xml z "index.jsp" na "/WEB-INF/jsp/index.jsp".

1

używam takiej techniki (który pracę dla 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> 

więc nie trzeba już redirect.jsp z:

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

w nie- WEB-INF katalogu !!

Oto dwa blogi z samą techniką:

UPDATE Od SRV.9.10 Welcome Files części Servlet API 2.4 dokumentacji^

 
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

Ta odpowiedź zakłada Spring, ale nic w pytaniu nie wskazuje, że OP używa Springa. – BalusC

+0

Dlaczego? Oparty jest on na sekcji "Servlet API 2.4" w sekcji "Witamy pliki w formacie SRV.9.10". Nie ma słowa kluczowego * Spring * ... – gavenkoa

+0

'dispatcher' na'/'jest klasyczną wiosną. – BalusC

Powiązane problemy