Установить местоположение JSP для сервлета - PullRequest
3 голосов
/ 24 ноября 2010

У меня есть простое веб-приложение на основе JSP.Корень приложения выглядит следующим образом:

|
|--META-INF
|--WEB-INF
|  `--web.xml
|--img
|--css
|--index.jsp
|--some1.jsp
|--some2.jsp
|--some3.jsp

Где web.xml содержит строки ниже:

<servlet>
    <servlet-name>servlet-jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>servlet-jsp</servlet-name>
    <url-pattern>/*.jsp</url-pattern>
</servlet-mapping>

Теперь я хочу изменить файловую структуру проекта - переместить все файлы * .jsp в специальныеdirectory:

|
|--META-INF
|--WEB-INF
|  `--web.xml
|--img
|--css
|--jsp
   |--index.jsp
   |--some1.jsp
   |--some2.jsp
   |--some3.jsp

Могу ли я настроить "servlet-jsp" для обработки jsp / some1.jsp при запросе URL-адреса "/some1.jsp"?

Ответы [ 3 ]

3 голосов
/ 24 ноября 2010

Я думаю, что многие (все?) Контейнеры уже отображают *.jsp (в любом каталоге) на сервлет JSP, поэтому написание такого явного отображения сервлета необходимо, только если вы хотите использовать собственные расширения файлов для своих JSP.Чтобы сформулировать это более прямо: вы, вероятно, можете просто удалить написанное сервлетное отображение.

Пересылка запросов для файлов JSP в / в /jsp может быть лучше всего выполнена путем определения фильтра .Вам также нужно написать свой собственный класс фильтра.Фильтры немного похожи на сервлеты, но вместо генерации контента, как это делает JSP или сервлет, они немного больше похожи на контроллер трафика, перенаправляя запросы.

1 голос
/ 24 ноября 2010

Вы можете создать сервлет, который сопоставлен с /jsp/, затем проанализировать путь после сопоставления сервлета и переслать в JSP, используя request.getRequestDispatcer(targetJsp).forward()

0 голосов
/ 24 ноября 2010
<servlet-mapping>
    <servlet-name>servlet-jsp</servlet-name>
    <url-pattern>/jsp/*.jsp</url-pattern>
</servlet-mapping>

Я думаю, это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...