SpringMVC
一、三层架构
三层:
表现层:通常说的web层,负责接受客户端请求,向客户端响应结果,通常客户端使用HTTP协议请求web层,web层接受http请求,完成http响应。
表现层包括展示层和控制层;控制层负责接受请求,展示层负责结果的展示。
表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应给客户端。
表现层的设计一般使用MVC模型。(MVC是表现层的设计模式,和其它层没有关系)
业务层:service层,负责业务逻辑处理,和项目需求开发息息相关。web层依赖业务层,但业务层不依赖web层。业务层在处理时可能会依赖持久层,如果要对数据持久化需要保证事务一致性。(换句话来说,事务应该放到业务层来控制)
持久层:也叫DAO层,负责数据持久化,包括数据层即数据库和数据访问层,数据库是对数据进行持久化的载体,数据访问层是业务层和持久层交互的接口,业务层需要通过数据访问层将数据持久化到数据库中。通俗的讲,持久层就是和数据库交互,对数据库表进行增删改查。
二、MVC
MVC全名Model view controller,是模型-视图-控制器的缩写,是一种用户设计创建应用程序表现层的模式。其中:
model模型:通常指数据模型,用作 封装数据。
view视图:通常指JSP或者HTML,作用 展示数据。
controller控制器:指应用程序中处理用户交互的部分,作用 处理程序逻辑。
MVP是什么?
SpringMVC是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架,它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口。
SpringMVC的优势是什么?
1、清晰的角色划分:
前端控制器(DispatcherServlet)
请求到处理器映(HandlerMapping)
处理器适配器(HandlerAdapter)
视图解析器(ViewResolver)
处理器或页面控制器(Controller)
验证器( Validator)
命令对象(Command 请求参数绑定到的对象就叫命令对象)
表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)
2、分工明确,而且扩展点相当灵活,可以很容易扩展,虽然几乎不需要。
3、由于命令对象就是一个POJO,无需继承框架特定API,可以使用命令对象直接作为业务对象。
4、和Spring 其他框架无缝集成,是其它Web框架所不具备的。
5、可适配,通过HandlerAdapter可以支持任意的类作为处理器。
6、可定制性,HandlerMapping、ViewResolver等能够非常简单的定制。
7、功能强大的数据验证、格式化、绑定机制。
8、利用Spring提供的Mock对象能够非常简单的进行Web层单元测试。
9、本地化、主题的解析的支持,使我们更容易进行国际化和主题的切换。
10、强大的JSP标签库,使JSP编写更容易。
四、第一个MVC项目
1、NEW PROJECT 选择 Maven项目,第一次创建需要下载相应的SDK,选择DOMNLOAD即可下载。
选择项目架构为maven-archetype-webapp,注意不要选错了。添加属性对,可以提升项目初始化速度。
点击finish,idea会自动下载部分jar包,等待项目初始化完毕。
然后需要完善项目文件目录,在src/main文件夹下,创建Java和resources文件夹。如下图所示:
JAVA文件夹用来存取java文件,resources文件夹用来存放xml配置文件。
在项目文件上右键添加springMVC框架,勾选Spirng及其目录下的SpringMVC如图所示。
绑定TOMCAT(首先需要下载TOMCAT,下载地址:https://tomcat.apache.org/download-10.cgi):
五、注解
RequestMapping:建立方法和请求之间的映射关联关系(使用path属性),降低程序耦合性。