Struts2 объединяется с доменным сервлетом - PullRequest
1 голос
/ 12 мая 2010

У меня есть веб-приложение struts2. Прямо сейчас мне нужно встроить с помощью iframe некоторую функциональность из автономного сервлета. Но согласно следующему правилу, сервлет никогда не будет вызывать.

<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

К сожалению, я не могу изменить его на / prefix / *

Так кто-нибудь знает, как решить это?

Ответы [ 3 ]

2 голосов
/ 12 мая 2010

Фильтры вызываются в порядке, как они определены в web.xml. Я бы создал фильтр с более конкретным url-pattern в передней части фильтра Struts2, а затем позволил бы этому фильтру переслать запрос к сервлету, о котором идет речь, вместо продолжения цепочки фильтров. Э.Г.

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
    request.getRequestDispatcher("/servletURL").forward(request, response);
}

Отобразите это на том же url-pattern, что и сервлет, т.е. /servletURL и поместите до фильтра Struts2 в web.xml.

0 голосов
/ 12 мая 2010

Мы делаем это с помощью распорок 2.1.6, определяя фильтр распорок следующим образом:

<filter><!--  struts filter  -->
    <filter-name>strutsFilter</filter-name>
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
    <filter-name>strutsFilter</filter-name>
    <url-pattern>*.do</url-pattern>
</filter-mapping>

И другие наши сервлеты:

<servlet-mapping>
    <servlet-name>SomeOtherServlet</servlet-name>
    <url-pattern>*.yo</url-pattern>
</servlet-mapping>
0 голосов
/ 12 мая 2010

Попробуйте посмотреть на это: Struts 2 Web XML

Возникает вопрос: «Почему фильтр сопоставлен с / * и как настроить явные исключения (начиная с 2.1.7)», что в идеале должно помочь. Теоретически, вы должны иметь возможность поместить свое исключение в этот список и нормально отобразить свой сервлет.

Я не буду комментировать это дизайнерское решение для пользователей Struts 2.

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