- Model:封装领域数据及逻辑
- View:查询领域数据并展现给用户
- Controller:截获用户请求并改变领域数据
解释
- Model:dao存的实体类
- View:后端编写的jsp/html用于页面渲染并返回作为用户可见的视图
- Controller:处理用户请求的东西
![527637af93217d81548b460dc446d624.png](https://i-blog.csdnimg.cn/blog_migrate/0e6d1c71fbdafa14a448932477835249.png)
前后端分离
视图的呈现和渲染都由服务端完成,前后端耦合,而且会影响服务端性能
前后端分离:首先从浏览器发送AJAX请求,然后服务端接受请求并返回JSON数据返回给浏览器,最后在浏览器端进行渲染
![279f4f17819c3a790ea1307ca919c220.png](https://i-blog.csdnimg.cn/blog_migrate/2695e9315b977a6b2c180b7d523fedbe.png)
如果将浏览器一端视为前端,而服务器一端视为后端的话,如图所示:
![2d8c83abc72c5c9fb87e8a605a61dd33.png](https://i-blog.csdnimg.cn/blog_migrate/993d7338263776edd418fd06c80b07c1.png)
而前后端分离之后:
- 后端只提供数据,处理业务逻辑,代码跑在服务器上;
- 前端接收数据,返回数据,处理渲染逻辑,代码跑在浏览器上。
正是这样淘汰了jsp
REST
Representational State Transfer(表现层状态转移):在任何时候都可以由客户端发出请求到服务端,最终返回自己想要的数据,当前请求不会受到上次请求的影响。就是只请求之间互不联系。
REST描述的是在网络中client和server的一种交互形式;REST本身不实用,实用的是如何设计 RESTful API(REST风格的网络接口)Restful接口,指的是一种规范
Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。“资源”是REST架构或者说整个网络处理的核心。比如:http://api.qc.com/v1/newsfeed: 获取某人的新鲜; http://api.qc.com/v1/friends: 获取某人的好友列表;http://api.qc.com/v1/profile: 获取某人的详细信息;
用HTTP协议里的动词来实现资源的添加,修改,删除等操作。即通过HTTP动词来实现资源的状态扭转:
GET 用来获取资源,
POST 用来新建资源(也可以用于更新资源),
PUT 用来更新资源,
DELETE 用来删除资源。比如:
DELETE http://api.qc.com/v1/friends: 删除某人的好友 (在http parameter指定好友id)
POST http://api.qc.com/v1/friends: 添加好友
UPDATE http://api.qc.com/v1/profile: 更新个人资料
BAD
- /getProducts
- /listOrders
- /retrieveClientByOrder?orderId=1
GOOD
- GET /products : will return the list of all products
- POST /products : will add a product to the collection
- GET /products/4 : will retrieve product #4
- PATCH/PUT /products/4 : will update product #4
RESTful风格的优点
1. 安全
2. 简洁
3. 高效