如果我将spring应用程序映射为处理所有传入请求(’/ *’),则对静态内容的请求将返回404。例如,即使在Spring拦截请求时资源存在,“ myhost.com/css/global.css”请求也将返回404。
替代方法是将SpringMVC映射到子目录(例如’/ home / ‘),但是在这种情况下,必须在应用程序内的所有链接中传递此目录。 有没有一种方法可以将SpringMVC映射到’/ ‘,并从处理中排除一组目录?
我当前的web.xml配置是:
<servlet> <servlet-name>springApp</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springApp</servlet-name> <url-pattern>/home/*</url-pattern> </servlet-mapping>
理想情况下,我希望映射类似于以下内容:
<servlet-mapping> <servlet-name>springApp</servlet-name> <url-pattern>/*</url-pattern> <exclude>/css/*,/js/*</exclude> </servlet-mapping>
这种事情有可能吗?
如果您只想使用Spring进行此操作,则可能会有些混乱:
完成所有操作后,所有无法映射到控制器的请求将转发给您HttpRequestHandler,并“按原样”提供。
HttpRequestHandler