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'.