Может jsp: включать страницы, проходящие через фильтры - PullRequest
0 голосов
/ 13 июня 2011

У меня есть страница jsp, в которую входит страница jsp через jsp: include. Теперь вопрос - проходит ли запрос на включенный jsp через фильтр? Следующее - мое отображение фильтра в web.xml

    <filter-mapping>
    <filter-name>XYZFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>INCLUDE</dispatcher>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>

Но, похоже, это не работает. Фильтр не вызывается для включенного JSP. Что я делаю не так или это вообще возможно?

Ответы [ 2 ]

2 голосов
/ 13 июня 2011

Поддержка <dispatcher> была введена в Servlet 2.4. Поэтому, когда это не работает, это, вероятно, означает, что вы запускаете свое веб-приложение в устаревшем контейнере Servlet 2.3 (например, Tomcat 5.0) или что ваш web.xml объявлен в соответствии с DTD Servlet 2.3 или не имеет конкретной версии объявление вообще, которое заставит контейнер вернуться к режиму наименьшей совместимости.

Убедитесь, что ваш web.xml соответствует максимальной версии API сервлета, поддерживаемой целевой средой выполнения. Если вашей целевой средой выполнения является, например, Tomcat 6.0, который является контейнером Servlet 2.5, тогда вы должны объявить Servlet 2.5, соответствующий web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">

    <!-- Your config here -->
</web-app>
0 голосов
/ 13 июня 2011

Это должно работать.<dispatcher>INCLUDE</dispatcher> в вашем отображении фильтра говорит, что включает также фильтр для включаемых отправок.

Отладка вашего кода, в другом месте он работает неправильно.

...