• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

sonix

Допустим есть приложение с контекстом 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

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

Gorgon

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

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

Pete

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!