前后端合作分为两种方式:1.服务器渲染 2.前后端分离
1.服务器渲染(SSR)
客户端请求,服务端的servlet或controller接收请求,后端控制路由与渲染页面,调用service,dao代码完成业务逻辑,返回jsp,jsp展现页面。
tips:
servlet是在上运行的小程序。这个词是在 Java 的环境中创造的,Java applet 是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。(来自百度百科)
controller 就是MVC里的控制器。
dao 是后端的数据访问层。
2.前后端分离
浏览器发送请求,直接到达html页面,页面负责调用服务器端口产生数据,填充html,在页面上进行解析操作DOM
两者的区别:
传输量:
服务器渲染传输数据较多,而且很多重复数据。
前后端分离传输数据量少
传输数据:
服务器渲染返回的是HTML
前后端分离返回的是JSON格式的数据
控制:
服务器渲染由后端来决定大多数
前后端分离 跳转的页面,由前端来决定
SEO:
服务器渲染支持SEO
前后端分离不支持SEO,因为首屏渲染出的html里是空数据
用户体验:
服务器渲染 返回的是包含数据和HTML的页面,首屏加载快
前后端分离 有渲染数据的过程,首屏渲染加载时间较长,单页面应用(SPA),用户体验更好
对于开发者:
服务器渲染 后台压力较大,出现bug会存在踢皮球的现象,服务器端压力较大。
前后端分离 前端和后台各司其职,出现bug快速定位谁的原因,较少服务器端压力,页面出现大量数据前端可以异步加载。提高开发效率。前端代码,可以复用,组件化。提升开发效率。