атрибут страницы в ‹jsp: include› с @WebServlet и web.xml

Не комментируйте соглашение, используемое при именовании пакетов в Java.

Внутри пакета Ch7ActionTags есть сервлет, сопоставленный с

@WebServlet("/FlavorListServlet")

Моя страница jsp находится в папке в WebContent, путь которой:

/Ch7RequestDispatching/ActionTags/MyPage.jsp

Вышеупомянутый сервлет включен на эту страницу jsp следующим образом.

<jsp:include page="/FlavorListServlet"></jsp:include>

Когда я попытался запустить эту страницу jsp, URL-адрес в браузере отображается как

http://localhost:7860/Phil_Hanna/Ch7RequestDispatching/ActionTags/MyPage.jsp

и сервлет успешно включен.

Я попытался поэкспериментировать с косой чертой /

Но и это не сработало:

<jsp:include page="FlavorListServlet"></jsp:include> 
<jsp:include page="/Ch7RequestDispatching/ActionTags/FlavorListServlet"></jsp:include>

Теперь проходим тот же процесс (замена аннотации @WebServlet на отображение сервлета в файле web.xml)

  <servlet>
        <servlet-name>FlavorListServletName</servlet-name>
        <servlet-class>Ch7ActionTags.FlavorListServlet</servlet-class>
  </servlet>

  <servlet-mapping>
     <servlet-name>FlavorListServletName</servlet-name>
     <url-paatern>/Ch7RequestDispatching/ActionTags/FlavorListServlet
     </url-pattern>
  </servlet-mapping>

Моя страница jsp сейчас:

<jsp:include page="FlavorListServlet"></jsp:include> <%-- / is absent here --%>

С помощью приведенного выше сопоставления содержимое сервлета успешно включено.

Но это не работает,

<jsp:include page="/FlavorListServlet"></jsp:include>

Итак, очевидный вопрос: почему существует разница в / при работе с двумя возможными сценариями:

<jsp:include page="/FlavorListServlet"></jsp:include> works with @WebServlet
<jsp:include page="FlavorListServlet"></jsp:include>  works with web.xml

person Farhan Shirgill Ansari    schedule 19.02.2015    source источник


Ответы (1)


  • Без косой черты в начале вы включаете файл, относящийся к текущей странице JSP.
  • С косой чертой в начале вы включаете файл, который относится к пути контекста веб-приложения (URL-адрес начинается с косой черты)
person Jean-François Savard    schedule 19.02.2015
comment
Сарвард: Я за вас проголосовал. Но не могли бы вы уточнить второй пункт. Первый пт. мне ясно. - person Farhan Shirgill Ansari; 19.02.2015
comment
@ShirgillAnsari обычно путь контекста веб-приложения - это имя вашего военного файла. - person Jean-François Savard; 19.02.2015
comment
@Sarvard: Большое спасибо за помощь мне. - person Farhan Shirgill Ansari; 19.02.2015