• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Как вызвать(передать управление) в сервлет 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"> а не и путь к сервлету получается не корректный.

Сенкс.
 
А какая разница куда слаживать жсп хтмл и тд? В web.xml прописан урл к сервлету, вот по нему и обращаешься (<url-pattern>/parse</url-pattern>).
 
Если я правильно понял и вот такой код <a href="parse?param1=value1"> прописывается в jsp, то это немного неверно, я бы писал <a href="<%=request.getContextPath()%>/parse?param1=value1">

Есть подозрение, что <a href="parse?param1=value1"> при генерации на вложенной стронице добавляет путь это вложенной страницы, т.е. html/pages/, что при вызове сервлета совсем не надо
 
Надо использовать <c:url> из тегов JSTL и не мучаться с request.getContextPath().
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab