Есть несколько вопросов. Во-первых, вы отправляете / app / * URL-адреса Spring только в своем web.xml:
<url-pattern>/app/*</url-pattern>
Хорошо, если отображение запроса было / app / helloworld, но означает, что / helloworld даже не доходит до весны. Вероятно, вы хотите использовать фильтр urlrewrite для отображения запросов в пространство / app / *.
Возьмите зависимость от Tuckey, а затем добавьте это в ваш web.xml:
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Затем добавьте файл с именем urlrewrite.xml в каталог WEB-INF, содержащий:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN" "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
<urlrewrite default-match-type="wildcard">
<rule>
<from>/images/**</from>
<to>/images/$1</to>
</rule>
<rule>
<from>/scripts/**</from>
<to>/scripts/$1</to>
</rule>
<rule>
<from>/styles/**</from>
<to>/styles/$1</to>
</rule>
<rule>
<from>/**</from>
<to>/app/$1</to>
</rule>
<outbound-rule>
<from>/app/**</from>
<to>/$1</to>
</outbound-rule>
</urlrewrite>
После этого запрос к / helloworld должен отправиться в правильное место. Возможно, вы также захотите изменить контроллер корневого представления:
<mvc:view-controller path="/" view-name="welcome"/>