TomCat 6: может ли страница приветствия быть внутри WEB-INF?

Я следую этому примеру, чтобы получить Spring up & running:http://static.springsource.org/docs/Spring-MVC-step-by-step/part2.html

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

3 ответов


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


Я пробую тот же учебник. В учебнике этого не говорится, но я изменил значение в своей сети.xml из " index.jsp " to " /WEB-INF/jsp / index.JSP-страница."


Я использую такую технику (которая работает для 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"); %>

не на 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'.