В моем приложении я использую архитектуру Spring MVC (3.0.5) вместе с инфраструктурой отчетности BIRT.
Я пытаюсь обслуживать все запросы, включая статические ресурсы, такие как css
, js
, html
и файлы изображений с использованием пружины DispatcherServlet
.
Для этой цели я добавил следующие записи в свой файл web.xml
<servlet>
<servlet-name>springapp</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
...............
...............
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Это перенаправит весь запрос на DispatcherServlet
и в свой контекстный файл я добавил
<mvc:resources mapping="/css/**" location="/css/" />
<mvc:resources mapping="/docs/**" location="/docs/" />
<mvc:resources mapping="/images/**" location="/images/" />
<mvc:resources mapping="/js/**" location="/js/" />
<mvc:resources mapping="/themes/**" location="/themes/" />
, чтобы эти ресурсы были загружены из файловой системы.
Эти конфигурации работают нормально.Но сейчас у меня проблемы с механизмом отчетов BIRT.
Механизм отчетов BIRT использует некоторые jsp-файлы, расположенные в папке с именем webcontent, которая находится в корне приложения.Поскольку мы направляем весь запрос на DispatcherServlet
, даже запрос на эти jsp-страницы направляется в весенний сервлет.Как я понимаю из некоторых постов, файлы jsp обычно обрабатываются org.apache.jasper.servlet.JspServlet
, который зарегистрирован в файле web.xml
Apache Tomcat и имеет сервлетное отображение следующим образом
<!-- The mapping for the JSP servlet -->
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jspx</url-pattern>
</servlet-mapping>
Какие изменения ядолжен сделать в моем сервлете отображение для работы в этой среде?Мне нужно, чтобы файлы jsp обрабатывались сервлетом jsp по умолчанию, а не весенним сервлетом.Как мне этого добиться?
Для этого поста Я понял, что второй приоритет в сопоставлении сервлета - это префикс url, поэтому мой шаблон URL /
для весеннего сервлета переопределяет значение по умолчаниюОтображение сервлета JSP, это предположение правильно?Если это правильно, то как это преодолеть?
Спасибо.