基于SpringBoot开发的房产信息项目(第四天)
maven多模块的实现:
house-biz : 负责数据访问层及业务的实现
house-common:负责定义数据模型以及公共代码
house-web:负责定义启动类,controller,模版引擎
1.设置错误页面
2.SpringMVC流程讲解
图1:
图2:
概念
DispatcherServlet:前端控制器(不需要程序员开发)
用户请求到达前端控制器,相当于MVC模式中的C,他是整个流程控制中心,由他调用其他组件处理用户的请求,他的存在降低了组件之间的耦合性。
作用:作为接收请求,响应结果,相当于转发器,减少其他组件的耦合性
HandlerMapping:处理映射器(不需要程序员开发)
他负责根据用户请求找到Handler(控制器器),springMVC提供多种不同的映射器实现不同的映射方式,例如:配置文件方式、实现接口方式、注解方式等
作用:根据请求的url找到控制器
Handler:处理器或者说控制器(需要程序员开发)
他是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下,Handler对用户的具体请求进行处理。开发者在编写Handler的时候应当按照HandlerAdapter的要求去做,这样才能正确的执行Handler。
HandlerAdapter:处理器适配器
通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行
作用:按照特定的规则去执行Handler。
ViewResolver:视图解析器(不需要程序员开发)
负责将处理结果生成View视图,他首先根据逻辑视图名解析成物理视图名,即具体的页面地址,在生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。SpringMVC提供了很多的View视图类型:JSTLView,freemarkerView,pdfView等
作用:进行视图解析,根据逻辑视图名解析成真正的视图。
View:视图(需要程序员开发)
View是一个接口,实现类支持不同的类型,一般情况下需要通过页面标签页面模板技术将数据模型通过页面展示给用户。
流程说明:
1.用户发送请求到达DispatchServlet,前端控制器收到请求会将url进行解析,得到请求资源标识符uri,之后会调用处理器映射器HandlerMapping,处理器映射器会根据uri得到并生成处理器对象Handler和HandlerIntercept,最后以HandlerExcutionChain对象的形式返回给前端控制器。
2.前端控制器会根据得到的Handler对象选择合适的处理器适配器HandlerAdapter,HandlerAdapter会去调用处理器Handler。
3.执行处理器,得到ModelAndView并返回给前端控制器,具体细节如下图
4.前端控制器将ModelAndView传给视图解析器ViewResolver,解析之后返回具体的视图View,之后前端控制器再去进行渲染(将数据模型填充至视图中)。
5.用户得到最终响应。
具体流程有参考: