SpringMvc入门到开发(二)之基本原理
2017-07-20 23:50
162 查看
所有资料打包下载:有需要的可以下载
http://download.csdn.net/download/xiaozhegaa/9907441
一:SpringMvc的框架原理
1 、用户发送请求至前端控制器DispatcherServlet
2 、DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3 、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
4 、DispatcherServlet通过HandlerAdapter处理器适配器调用处理器
5 、执行处理器(Controller,也叫后端控制器)。
6 、Controller执行完成返回ModelAndView
7 、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
8 、DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9 、ViewReslover解析后返回具体View
10、DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。
11、DispatcherServlet响应用户
【总结:】在上述的十一步骤中,需要用户开发的组件有handler、view。即是写处理器handler跟写视图view。其他的只需要配置一下就好了。个人建议上述十一个步骤结合图可以记忆一下。有助于理解使用Spring。当有人问到Spring是如何运行的?结合上述的东西大概就可以回答了。
【总结:】下面的知识点会比较枯燥,难懂。也可以不看。记住以下以下几句话就可以。在web.xml配置的DispatcherServlet执行的时候,会默认执行几个初始化的函数,例如适配器初始化函数,映射器初始化的函数。Spring首先从配置文件中,查找对应名称的Bean值,如果有就实例化了用户定义的类,不去实例化系统默认的类。如果找不到就去实例化系统默认提供的类。这也就能解释说:为什么适配器,映射器自己配置也可以,不配置也可以。
二:详细讲一下DispatcherServlet
1 如果你想要自己配置DispatcherServlet,如何知道dispatcherServlet的全路径呢?,这里教大家一个快捷键”Ctrl+Shift+T”。搜索DispatcherServlet(大小写不分)
2. 分析DispatcherServlet源码,了解前端控制器截获请求之后做了什么工作?又是如何进行分派的?【这个可以当作了解,这个算着重底层东西了】
2. 1 以第一个初始化方法为例子,查看它都到底是怎么运行的!
【分析:】首先initStrategies方法在WebApplicationContext初始化之后自动执行,自动扫描上下文的Bean。根据特定的名称找到自定义的组件。例如名为:multipartResolver的Bean。若是找不到的话。则会在默认的org.springframework.web.servler路径下面的DispatcherServlet.properties配置文件找,该配置文件指定了DispatcherServlet所使用的默认组件
三:看一下DispatcherServlet.properties文件中的默认组件
四:组件说明,对一些名词的解释
总结:说明:在springmvc的各个组件中,处理器映射器、处理器适配器、视图解析器称为springmvc的三大组件。
需要用户开发的组件有handler、view
http://download.csdn.net/download/xiaozhegaa/9907441
一:SpringMvc的框架原理
1 、用户发送请求至前端控制器DispatcherServlet
2 、DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3 、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
4 、DispatcherServlet通过HandlerAdapter处理器适配器调用处理器
5 、执行处理器(Controller,也叫后端控制器)。
6 、Controller执行完成返回ModelAndView
7 、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
8 、DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9 、ViewReslover解析后返回具体View
10、DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。
11、DispatcherServlet响应用户
【总结:】在上述的十一步骤中,需要用户开发的组件有handler、view。即是写处理器handler跟写视图view。其他的只需要配置一下就好了。个人建议上述十一个步骤结合图可以记忆一下。有助于理解使用Spring。当有人问到Spring是如何运行的?结合上述的东西大概就可以回答了。
【总结:】下面的知识点会比较枯燥,难懂。也可以不看。记住以下以下几句话就可以。在web.xml配置的DispatcherServlet执行的时候,会默认执行几个初始化的函数,例如适配器初始化函数,映射器初始化的函数。Spring首先从配置文件中,查找对应名称的Bean值,如果有就实例化了用户定义的类,不去实例化系统默认的类。如果找不到就去实例化系统默认提供的类。这也就能解释说:为什么适配器,映射器自己配置也可以,不配置也可以。
二:详细讲一下DispatcherServlet
1 如果你想要自己配置DispatcherServlet,如何知道dispatcherServlet的全路径呢?,这里教大家一个快捷键”Ctrl+Shift+T”。搜索DispatcherServlet(大小写不分)
2. 分析DispatcherServlet源码,了解前端控制器截获请求之后做了什么工作?又是如何进行分派的?【这个可以当作了解,这个算着重底层东西了】
//DispatcherServlet.class类文件中 //初始化的防范 protected void initStrategies(ApplicationContext context) { //初始化上传文件解析器 initMultipartResolver(context); //初始化本地化解析器 initLocaleResolver(context); //初始化主题解析器 initThemeResolver(context); //初始化处理器映射器,将请求映射到处理器 initHandlerMappings(context); //初始化处理器适配器 initHandlerAdapters(context); //初始化异常解析器,如果遇到异常就交给HandlerExceptionResolvers initHandlerExceptionResolvers(context); //初始化请求到视图的解析器 initRequestToViewNameTranslator(context); //初始化视图解析器,通过ViewResolvers解析逻辑视图名到具体视图 initViewResolvers(context); //初始化flash映射管理 initFlashMapManager(context); } //注释自己写的,源码无注释
2. 1 以第一个初始化方法为例子,查看它都到底是怎么运行的!
【分析:】首先initStrategies方法在WebApplicationContext初始化之后自动执行,自动扫描上下文的Bean。根据特定的名称找到自定义的组件。例如名为:multipartResolver的Bean。若是找不到的话。则会在默认的org.springframework.web.servler路径下面的DispatcherServlet.properties配置文件找,该配置文件指定了DispatcherServlet所使用的默认组件
三:看一下DispatcherServlet.properties文件中的默认组件
/*注释全部写在里面*/ # Default implementation classes for DispatcherServlet's strategy interfaces. # Used as fallback when no matching beans are found in the DispatcherServlet context. # Not meant to be customized by application developers. /*本地化解析器 */ org.springframework.web.servlet.LocaleResolver=org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver /*主题解析器 */ org.springframework.web.servlet.ThemeResolver=org.springframework.web.servlet.theme.FixedThemeResolver /*处理器映射器(共2个) */ org.springframework.web.servlet.HandlerMapping=org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,\ org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping /*处理器适配器(共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 /*异常处理器(共3个) */ org.springframework.web.servlet.HandlerExceptionResolver=org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver,\ org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver,\ org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver /*视图名称解析器 */ org.springframework.web.servlet.RequestToViewNameTranslator=org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator /*视图解析器 */ org.springframework.web.servlet.ViewResolver=org.springframework.web.servlet.view.InternalResourceViewResolver /*flash映射管理器 */ org.springframework.web.servlet.FlashMapManager=org.springframework.web.servlet.support.SessionFlashMapManager /*如果开发者希望使用用户自定义类型的组件,则只需要在Spring配置文件中配置自定义的Bean组件即可。 如果DispatcherServlet发现上下文中有用户自定义的组件,则不会使用默认组件 */
四:组件说明,对一些名词的解释
总结:说明:在springmvc的各个组件中,处理器映射器、处理器适配器、视图解析器称为springmvc的三大组件。
需要用户开发的组件有handler、view
相关文章推荐
- 《SpringMVC从入门到放肆》四、SpringMVC配置式开发(处理器映射器)
- SpringMVC开发入门讲义
- SpringMVC开发入门讲义
- JSP开发入门(二)----JSP语法的基本原理
- 微信小程序开发结合现有SpringMvc-入门准备1
- SpringMvc入门到开发(四)之自定义异常处理,上传,自定义的参数类型转化【附详细截图】
- JSP开发入门(二)----JSP语法的基本原理
- SpringMVC入门之一:SpringMVC基本原理及请求过程概述
- SpringMvc入门到开发(一)之入门小程序
- springMVC入门程序-非注解开发环境配置
- SpringMVC开发入门讲义
- SpringMVC的注解开发入门
- SpringMvc注解方式开发入门
- springMVC入门程序-注解开发环境配置
- IntelliJ 开发SpringMVC 入门
- SpringMVC开发快速入门
- JSP开发入门(二)----JSP语法的基本原理
- SpringMvc入门到开发(三)之注解的控制器
- 使用SpringMvc开发Android WebService接口入门教程
- 使用SpringMvc开发Android WebService接口入门教程