有什么需要和用途
问题内容:
<mvc:default-servlet-handler />
Spring
MVC有什么需要。我们什么时候应该使用它。到底什么时候需要。我们为什么要使用它。我遍历了stackoverflow中的几个链接,但无法获得清晰的画面或理解。有人可以解释吗?
问题答案:
什么是必要<mvc:default-servlet-handler />
的Spring MVC
?
使用此handler
spring调度程序会将所有请求转发到default Servlet
。要启用该功能,您可以使用注释或基于xml的配置,如下所示:
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
或使用XML:
<mvc:default-servlet-handler/>
它会做什么?
该DefaultServletHttpRequestHandler
将尝试auto-detect
在default Servlet
为container
在启动时,使用大多数主要的Servlet容器(包括软件Tomcat,Jetty的GlassFish,JBoss和树脂中,WebLogic和WebSphere)已知名称的列表。如果已使用其他名称自定义配置了默认Servlet,或者在默认Servlet名称未知的情况下使用了不同的Servlet容器,则必须明确提供默认Servlet的名称,如以下示例所示:
@Configuration
@EnableWebMvc
public 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 />
您可以在这里探索更多。