JAVA Spring web mvc 学习 之 3:DispatcherServlet

来源:互联网 发布:国家顶级域名 编辑:程序博客网 时间:2024/05/21 10:44

在前面的初步接触中,记得 配置 web.xml,必须配置servlet,配置的时候,是配置的一个org.springframework.web.servlet.DispatcherServlet。

在配置spring配置文件时,提到有些可以默认不用配置,又增加了些class,大概说一下。

首先,看源码:包package org.springframework.web.servlet。以下这个方法在WebApplicationContext初始化时自动执行,扫描bean,根据名字匹配。

protected void initStrategies(ApplicationContext context) {    this.initMultipartResolver(context);    this.initLocaleResolver(context);    this.initThemeResolver(context);    this.initHandlerMappings(context);    this.initHandlerAdapters(context);    this.initHandlerExceptionResolvers(context);    this.initRequestToViewNameTranslator(context);    this.initViewResolvers(context);    this.initFlashMapManager(context);}

所有默认:

// 只允许一个,Bean中查找名为localResolver、类型为LocaleResolver的,没有则默认

org.springframework.web.servlet.LocaleResolver=org.springframework.web.servlet.il8n.AcceptHeaderLocalResolver

// 只允许一个,Bean中查找名为themeResolver、类型为ThemeResolver的,没有则默认

org.springframework.web.servlet.ThemeResolver=org.springframework.web.servlet.theme.FixThemeResolver

//允许多个。受detectAllHandlerMappings属性影响,true可多个。查找与前面雷同,但不检索名字,不允许多个时,找名为handlerMapping的。没找到,默认下面第一个。

org.springframework.web.servlet.HandlerMapping=org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping

//与上个雷同,没找到时,使用DispatcherServlet.properties配置文件??中制定的3个实现类分别创建。

org.springframework.web.servlet.HandlerAdapter=org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter

// 与上述雷同。没找到对应,用户可自定义,添加到DispatcherServlet.properties配置文件??中。

org.springframework.web.servlet.HandlerExceptionResolver=org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver,org.springframework.web.servlet.mvc.annotation.ResponseStatusExeptionResolver,org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver

// 只允许一个

org.springframework.web.servlet.RequestToViewNameTranslator=org.springframework.web.servlet.view.DefaultRequesToViewNameTranslator

// 允许多个,与多个匹配的雷同

org.springframework.web.servlet.ViewResolver=org.springframework.web.servlet.view.InternalResourceViewResolver

// 只允许一个

org.springframework.web.servlet.FlashMapManaer=org.springframework.web.servlet.support.SessionFlashMapManager

还有一个MuliipartResolver文件上传解析器,没有定义则不加载。