Web.xml - шаблон URL отображается дважды - PullRequest
0 голосов
/ 12 июля 2010

Наш web.xml содержит следующую выдержку.

<servlet>
    <servlet-name>testServlet</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>testServlet</servlet-name>
    <url-pattern>*.htm</url-pattern>
</servlet-mapping>

<filter>
    <filter-name>anotherServlet</filter-name>
    <filter-class>com.test.anotherServlet</filter-class>    
</filter>
<filter-mapping>
    <filter-name>anotherServlet</filter-name>
    <url-pattern>*.htm</url-pattern>
</filter-mapping>

Мне нужно понять, как отображается контейнер, когда встречается URL-адрес * .htm (скажем, hello.htm) ... что происходит, когда происходит такой запрос.

1 Ответ

1 голос
/ 12 июля 2010

Второе отображение предназначено для фильтра, а не для сервлета.

Когда запрос поступает в контейнер сервлета, он сначала передается через цепочку любых фильтров, затем в сервлет, затем возвращается обратнофильтры в обратном порядке.

Фильтры имеют немного отличающийся API от сервлетов: есть метод с именем doFilter(), который получает ServletRequest и ServletResponse.Он вызывает остальную часть цепочки через chain.doFilter с теми же параметрами;в конце цепочки фильтров эти параметры передаются сервлету.Таким образом, фильтры могут изменять или даже заменять входящий объект запроса и выходной объект ответа.

Здесь немного больше информации здесь .

...