атрибут на страница в ‹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 със servlet-mapping във файла 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
Сарвард: Гласувах за теб. Но може ли малко по-подробно 2-ра точка. Първата т. ясно ми е. - 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