Как вызвать(передать управление) в сервлет Action не из корневой стран

  • Автор темы sonix
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

sonix

Гость
#1
Допустим есть приложение с контекстом mytest и дискриптором web.xml:

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>/parse</url-pattern>
</servlet-mapping>

И дерево каталогов

Mytest
- html/pages/
- page1.html
….
- pageN.html
- jsp/pages/
- page1.jsp
….
- pageN.jsp
……
-WEB-INF
-classes/Servlet.class
-web.xml
Вопрос:

Как вызвать(передать управление) в сервлет action из НЕ КОРНЕВОЙ html и jsp страниц с помощью линка <a href="..?...">Pass control to servlet</a>

Из корвевой работает нормально <a href="parse?param1=value1">, но со вложенной (например html/pages/) директории линк получается такого вида <a href="host:port/Mytest/html/pages/parse?param1=value1"> а не и путь к сервлету получается не корректный.

Сенкс.
 
V

vovander

Гость
#2
А какая разница куда слаживать жсп хтмл и тд? В web.xml прописан урл к сервлету, вот по нему и обращаешься (<url-pattern>/parse</url-pattern>).
 
G

Gorgon

Гость
#3
Если я правильно понял и вот такой код <a href="parse?param1=value1"> прописывается в jsp, то это немного неверно, я бы писал <a href="<%=request.getContextPath()%>/parse?param1=value1">

Есть подозрение, что <a href="parse?param1=value1"> при генерации на вложенной стронице добавляет путь это вложенной страницы, т.е. html/pages/, что при вызове сервлета совсем не надо
 
P

Pete

Гость
#4
Надо использовать <c:url> из тегов JSTL и не мучаться с request.getContextPath().
 
Статус
Закрыто для дальнейших ответов.