day53(mvc模式,前后端分离,json,服务端与客户端数据传输,商品管理项目)
1.后端的MVC设计模式
-
把实现一个业务的代码划分为三部分,分别是: 页面相关(V),业务逻辑相关(C),数据相关(M)
-
M:Model 数据模型, 对应的代码是数据库相关的Mapper部分
-
C:Controller 控制器,对应的是Controller相关代码
-
实现一个业务的顺序: V页面相关代码->C Controller相关代码->M 数据库Mapper相关代码
-
排错时也是从这三部分代码中找问题
-
后端MVC涉及模式中的V页面相关,前端工程师将页面又划分为了MVC三部分
2.前后端不分离
-
如果前后端不分离, 后端服务器需要两套代码来应对 手机客户端和浏览器客户端, 因为不同的客户端的需求内容是不一样的,这样后端的开发效率就会受影响.
3.前后端分离
-
前后端分离:指在Controller中不再处理页面相关内容, 浏览器客户端需要先请求页面,页面加载完之后从页面中再次发出请求获取数据, 得到数据后把数据展示在页面中,这个过程属于页面的局部刷新, 同步请求只能实现页面的整体刷新无法实现局部刷新, 所以以后不再使用同步请求, 全部使用异步请求,因为以后工作基本全是前后端分离思想.
4.JSON
-
JSON是一种轻量级的数据交换格式(数据封装格式)
-
客户端和服务器之间需要互相传递数据,当需要传递复杂数据时需要按照特定的格式将数据进行封装,JSON就是这样一个通用格式.
登录成功
用户名已存在
密码错误
123
"id=1, title=手机 , price=1000, saleCount=500"
[{"id":1,"title":"阿迪袜子","price":10.0,"saleCount":1000},{"id":3,"title":"裤子","price":50.0,"saleCount":400},{"id":4,"title":"袜子","price":5.0,"saleCount":100}]
5.服务器和客户端之间如何传递复杂数据
6.商品管理添加商品步骤:
-
创建工程 3个打钩 修改application.properties配置文件, 启动工程测试是否成功
-
创建index.html首页 和 insert.html页面
index.html
-
在insert.html页面中添加三个文本框和一个添加按钮, 通过Vue对页面内容进行管理,此时需要把之前工程中的js文件夹复制到新工程, 当点击添加按钮时向/insert地址发出异步post请求把用户输入的商品信息提交
insert.html
-
创建controller.ProductController 添加insert方法处理/insert请求 创建Product实体类 在insert方法中声明用来接收传递过来的参数(此参数需要通过@RequestBody注解进行修饰
package cn.tedu.boot41.controller;
import cn.tedu.boot41.entity.Product;
import cn.tedu.boot41.mapper.ProductMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
-
创建ProductMapper 在里面添加insert方法通过@Insert注解修饰
package cn.tedu.boot41.mapper;
import cn.tedu.boot41.entity.Product;
import org.apache.ibatis.annotations.*;
import java.util.List;
-
在Controller中将ProductMapper装配进来, 在insert方法中调用mapper的insert方法把接收到的Product对象传递过去
7.商品管理商品列表步骤:
-
在index.html页面中添加商品列表超链接 请求地址为/list.html页面
-
创建list.html页面, 在页面中添加表格,并且通过Vue进行管理,在Vue的created方法中发出异步的get请求,把请求回来的数据交给一个数组变量, 然后让页面中表格的内容和数据变量进行绑定, 当数组有值时页面会自动显示数据