2009-09-28 3 views
7

Я следую за этот пример, чтобы получить весной до & бега: http://static.springsource.org/docs/Spring-MVC-step-by-step/part2.htmlTomCat 6: может приветствовать страницу внутри WEB-INF?

Что они делают это переместить все .jsp файлы внутри WEB-INF, чтобы запретить пользователям доступ к ним непосредственно ... до сих пор так хорошо. Однако у сервлета есть приветственная страница index.jsp, и когда это перемещается внутри каталога WEB-INF, я получаю ошибки. Я не могу определить, должен ли Tomcat 6 разрешать страницу приветствия внутри WEB-INF или нет?

ответ

7

Ничто внутри WEB-INF не может быть напрямую доступно, но должно сначала пройти через что-то другое (обычно сервлет), которое затем пересылает запрос внутренне на ресурс WEB-INF.

3

Я пытаюсь использовать тот же учебник. В учебнике это не сказано, но я изменил значение в моем web.xml с «index.jsp» на «/WEB-INF/jsp/index.jsp».

1

Я использую такой метод (которые работают для 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> 

так что вам больше не нужно redirect.jsp с:

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

в бездокументарной WEB-INF каталог !!

Здесь два блога с той же техникой:

UPDATE Из SRV.9.10 Welcome Files секции 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

Этот ответ предполагает Spring, но ничто в вопросе не указывает, что OP использует Spring. – BalusC

+0

Почему? Он основан на разделе SRV.9.10 «Приветственные файлы» документации Servlet API 2.4. Нет ключевого слова * Spring * ... – gavenkoa

+0

'Диспетчер' на'/'является классической весной. – BalusC