基础概念介绍
B/S和C/S开发框架
- B/S架构,浏览器/服务器架构
- C/S架构,客户端/服务器架构
- 说明:现在使用Java开发的大多数是web应用,这些应用几乎全都是基于B/S架构进行开发的,在B/S架构中,应用系统标准的三层架构分为:表现层、业务层、持久层,这种三层架构在我们实际开发中使用的非常多
应用系统三层架构
-
表现层
- 我们常说的web层
- 负责接受客户端请求,向客户端响应结果,通常客户端使用http协议请求web层,web层需要接受http请求,完成http响应
- 表现层包括展示层和控制层,控制层负责接收请求,展示层负责结果的展示
- 表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结构响应给客户端
- 表现层的设计一般都使用MVC模型(MVC是表现层的设计模型,和其他层没有关系)
-
业务层
- 我们常说的service层
- 负责业务逻辑处理,和我们开发的项目的需求息息相关,web层依赖业务层,但是业务层不依赖web层
- 业务层在业务处理是可能会依赖持久层,如果要对数据持久化需要保证事务一致性(也就是事务应该放到业务层来控制)
-
持久层
- 我们常说的dao层
- 负责数据持久化,包括数据层即数据库和数据访问层,数据库是对数据进行持久化的载体,数据访问层是业务层和持久层的接口,业务层需要通过数据访问层将数据持久化到数据库中
- 持久层就是和数据库交互,对数据库进行增删改查
MCV设计模式
MVC是模型(model)-视图(view)-控制器(controller)的缩写,是一种用于设计编写web应用程序表现层的模式。
MVC设计模式的三大角色
- Model(模型):包含业务模型和数据模型,数据模型用于封装数据,业务模型用于处理业务
- View(视图):一般是指jsp或html,作用一般就是展示数据的。通常视图是依据数据模型创建的
- Controller(控制器):是应用程序中处理交互的部分,作用一般就是处理程序逻辑的
SpringMVC介绍
介绍
- SpringMVC是一种基于MVC设计模型的请求驱动类型的轻量级web框架,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面,Spring框架提供了构建web应用程序的全功能MVC模块
- 使用Spring可插入的MVC架构,从而在使用Spring进行WEB开发是,可以选择使用Spring的SpringMVC框架或者集成其他MVC开发框架
- SpringMVC已经成为目前最主流的MVC框架之
- 它通过一套注解,让一个简单的java类成为处理请求的控制器,而无需实现任何接口,同时支持RESTful编程风格的请求
SpringMVC与Spring的联系
SPringMVC全名是Spring Web MVC,是Spring家族Web模块的一个重要成员
Spring六大组件
说明:
1.在SpringMVC的各个组件中,前端控制器、处理器、视图称为SpringMVC的MVC组件
2.在springMVC的各个组件中,处理器映射器、处理器适配器、视图解析器称为SpringMVC的三大组件
3.需要开发的组件有处理器、视图
-
DispatchServlet:前端控制器
用户请求到达前端控制器,相当于MVC模式中的C,DispatchServlet是整个流程控制的中心,由它调用其它组件处理用户请求 ,DispatchServlet的存在降低了组件之间的耦合性
-
Handler:处理器
Handler是继DispatchServlet前端控制器的后端控制器,在DispatchServlet的控制下Handler对具体的用户请求进行处理,由于Handler涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发Handler
-
View:视图
SpringMVC框架提供了很多的view视图类型的支持,包括:jstlView、freemarkerView、pdfView等,我们常用的视图就是jsp,一般情况下需要通过页面标签或页面模板技术将模板数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面
-
HandlerMapping:处理器映射器
HandlerMapping负责根据用户请求找到Handler处理器,SpringMVC提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。
-
HandlerAdapter:处理器适配器
通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多的处理器进行执行
-
View Resolver:视图解析器
View Resolver负责将处理结果生成view视图,View Resolver首先根据逻辑视图名解析成物理视图名具体的页面地址,再生成view视图对象,最后对view进行渲染将处理结果通过页面展示给用户