什么是必要<mvc:default-servlet-handler />
的Spring MVC
?
使用此
handlerspring调度程序会将所有请求转发到default
Servlet。要启用该功能,您可以使用注释或基于xml的配置,如下所示:
@Configuration@EnableWebMvcpublic class WebConfig extends WebMvcConfigurerAdapter { @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); }}或使用XML:
<mvc:default-servlet-handler/>
它会做什么?
该
DefaultServletHttpRequestHandler将尝试
auto-detect在
defaultServlet为
container在启动时,使用大多数主要的Servlet容器(包括软件Tomcat,Jetty的GlassFish,JBoss和树脂中,WebLogic和WebSphere)已知名称的列表。如果已使用其他名称自定义配置了默认Servlet,或者在默认Servlet名称未知的情况下使用了不同的Servlet容器,则必须明确提供默认Servlet的名称,如以下示例所示:
@Configuration@EnableWebMvcpublic class WebConfig extends WebMvcConfigurerAdapter { @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable("myCustomDefaultServlet"); }}或使用XML:
<mvc:default-servlet-handler default-servlet-name="myCustomDefaultServlet"/>
我们什么时候应该使用它? 到底什么时候需要?我们为什么要使用它?
当您希望spring调度程序
static resources在
web root使用默认servlet的情况下服务时。
如果使用
DefaultServletHttpRequestHandler,则可以替换:
<mvc:resources mapping="/js/**" location="/js/" /> <mvc:resources mapping="/css/**" location="/css/" /> <mvc:resources mapping="/images/**" location="/images/" />
与:
<mvc:default-servlet-handler />
您可以在这里探索更多。



