2015-03-16 2 views
2

Почему моя фильтрация не работает для меня и как ее настроить?Как настроить шаблоны URL, чтобы сервлет и Struts2 работали одновременно?

Существует мой web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
<servlet> 
    <display-name>GameServlet</display-name> 
    <servlet-name>GameServlet</servlet-name> 
    <servlet-class>ajaxdemo.action.GameServlet</servlet-class> 
    <load-on-startup>0</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>GameServlet</servlet-name> 
    <url-pattern>/gameservlet</url-pattern> 
</servlet-mapping> 
<filter> 
    <filter-name>struts2</filter-name> 
    <filter-class> 
     org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 
    </filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 
</web-app> 

На этой конфигурации GameServlet ничего не получает и веб-сервер сообщает, что нет никакого отображения действий для /gameservlet URL.

Если я прокомментирую фильтрацию фильтра, этот сервлет отлично работает по этому URL-адресу.

Как получить работу Фильтры Struts и фильтр сервлетов одновременно, точка сервлета должна работать только с /gameservlet URL, все остальные должны обрабатываться Struts. Я не могу понять, как создавать шаблоны URL для моего дела.

+0

возможно дубликат [Как использовать Servlet в Struts2] (http://stackoverflow.com/questions/5295491/how-to-use-servlet-in-struts2) –

+0

с первого дублированию зрения, Дон» я знаю, что принимаю это или нет, суть в том, что я знал, что Servlet и Struts могут работать вместе, поэтому я не нашел, что вы указали, мой вопрос более точен для проблемы, поскольку вопрос был точно связан с шаблонами. – Atark

+0

Возможный дубликат [Джерси с Struts2] (https://stackoverflow.com/questions/17293115/jersey-with-struts2) –

ответ

1

Вы должны добавить константу excludePattern в struts.xml, чтобы исключить URL-адрес сервлетов из обработки Struts.

<struts> 
    <constant name="struts.action.excludePattern" value="/gameservlet/?.*"/> 
    ... 
</struts> 
+0

Он работает, спасибо большое, я видел множество учебников для Struts и сервлетов и не мог найти это очень просто. – Atark

+0

Вы должны перенести этот ответ как можно скорее. –

Смежные вопросы