Avi*_*ddy 26 spring spring-mvc
<mvc:default-servlet-handler />Spring MVC 的需求是什么?我们什么时候应该使用它.什么时候需要它.我们为什么要使用它.我在stackoverflow中经历了一些链接,但无法获得清晰的图片或理解.谁能解释一下?
Arp*_*wal 38
什么是必要<mvc:default-servlet-handler />的Spring MVC?
使用此handlerspring分配器会将所有请求转发为默认值Servlet.要启用该功能,您可以使用注释或基于xml的配置,如下所示:
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
Run Code Online (Sandbox Code Playgroud)
或者用XML:
<mvc:default-servlet-handler/>
Run Code Online (Sandbox Code Playgroud)
它会做什么?
在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");
}
}
Run Code Online (Sandbox Code Playgroud)
或者用XML:
<mvc:default-servlet-handler default-servlet-name="myCustomDefaultServlet"/>
Run Code Online (Sandbox Code Playgroud)
我们什么时候应该使用它?什么时候需要它?我们为什么要使用它?
当您希望spring dispatcher static resources在web root使用默认servlet下提供服务时.
如果我们使用DefaultServletHttpRequestHandler,那么我们可以替换:
<mvc:resources mapping="/js/**" location="/js/" />
<mvc:resources mapping="/css/**" location="/css/" />
<mvc:resources mapping="/images/**" location="/images/" />
Run Code Online (Sandbox Code Playgroud)
用:
<mvc:default-servlet-handler />
Run Code Online (Sandbox Code Playgroud)
您可以在这里探索更多.
小智 5
因为我们通常使用映射"/*"配置DispatcherServlet,但是所有请求(例如.js / .css)也将映射到DispatcherServlet,因此我们需要HttpRequestHandler将这些静态资源请求分派给DefaultServlet.
| 归档时间: |
|
| 查看次数: |
22165 次 |
| 最近记录: |