2015-02-19 6 views
0

Не комментируйте соглашение, используемое для именования пакетов в Java.атрибут страницы в <jsp:include> с @WebServlet и web.xml

Существует сервлет, внутри упаковки 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> 

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

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

ответ

1
  • Без косой черты в начале вы включаете файл, относящийся к текущей странице JSP.
  • С косой чертой в начале, вы включаете файл, который является относительно пути контекста веб-приложения (URL начинается с косой черты)
+0

Sarvard: Я upvoted вас. Но можете ли вы немного разобраться во 2-м пункте. Первый pt. мне ясно. –

+0

@ShirgillAnsari Обычно путь контекста веб-приложения - это имя вашего военного файла. –

+0

@Sarvard: Большое спасибо за помощь. –