атрибут servlet-mapping в web.xml для проекта, не находящегося на верхнем уровне в веб-приложениях - PullRequest
0 голосов
/ 29 марта 2012

У меня есть следующие настройки. Папка itext находится на верхнем уровне в веб-приложениях:

├───itext
│   └───WEB-INF
│       ├───classes
│       │   └───com
│       │       └───imparator
│       │           └───ist
│       └───lib

В папке web-inf у меня есть файл web.xml, в котором я выполняю отображение сервлета:

<servlet>
    <servlet-name>Itext Servlet</servlet-name>
    <servlet-class>com.imparator.ist.ItextServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Itext Servlet</servlet-name>
    <url-pattern>/fincc-itext</url-pattern>
</servlet-mapping>

Теперь, когда я хочу, чтобы этот сервлет что-то обслуживал, вот мой атрибут действия в форме:

<form method="POST" action="/itext/fincc-itext">

=============================================== =========================================

Теперь предположим, что папка itext находилась не в папке верхнего уровня в веб-приложениях, а на нескольких уровнях ниже:

├───level1
│   └───level2
│       └───itext
│           └───WEB-INF
│               ├───classes
│               │   └───com
│               │       └───imparator
│               │           └───ist
│               └───lib

Как обновить отображение сервлета и значение атрибута действия, чтобы они соответствовали этой структуре каталогов?

Ответы [ 2 ]

1 голос
/ 29 марта 2012

Настройка веб-приложения должна быть:

webapp
    -somefolders (you can put text, js, css, image files here)
    - WEB-INF
        - classes
        - lib (contains jars)
        - web.xml
        - xml or configuration files
    - META-INF (if needed)

Это стандарт, и вы должны следовать.Если вы хотите изменить путь к сервлету, измените его в web.xml.В вашей ситуации:

+---itext (web app name)
¦   +---somefolders (you can put text, js, css, image files here)
¦   ¦
¦   +---META-INF (if needed)
¦   ¦
¦   +---WEB-INF
¦       +---classes
¦       ¦   +---com
¦       ¦       +---imparator
¦       ¦           +---ist
¦       +---lib
¦   ¦
¦   +---web.xml
¦   ¦   
¦   +---xml or configuration files

вам все еще нужно сохранить структуру приложения и изменить путь к сервлету в web.xml:

<servlet-mapping>
    <servlet-name>Itext Servlet</servlet-name>
    <url-pattern>/itext/fincc-itext</url-pattern>
</servlet-mapping>
1 голос
/ 29 марта 2012

Они не изменятся, если не изменится контекст. Контекст - это itext, потому что именно там вы, WEB-INF.

...