SpringMVC
概念
静态Web架构
页面内容不可改变,早期Web形式,现在已经很少见,适合博客等静态展示为主的平台
动态Web架构(演进)
JSP Model1:Client->JSP(Servlet)->Data
JSP(本质是Servlet)或Servlet既负责接收请求、处理业务、还负责视图的数据填充和页面设计及返回响应,Data负责数据的增删查改
JSP Model2:Client->Servlet(->Data)(->JSP)
Servlet负责接收请求、处理业务、数据传送、返回响应,Data负责数据的增删查改,JSP(本质是Serlvet)负责数据填充和页面设计
Servlet接收请求后进行业务处理(调用Data进行数据处理),再把处理后的数据导入JSP(本质是Serlvet)中,最后把填充好数据的JSP返回给客户
MVC:Client->Controller(-Model)(->View)
Controller(本质是Servlet)负责接收请求、数据传送、返回响应,Model负责业务逻辑的处理和数据的增删查改,View(可以是Servlet也可以是Thymeleaf等)负责数据填充和页面设计
Controller接收请求后调用Model进行业务处理(涉及数据的增删查改),再把处理后的数据导入View,最后把填充好数据的View返回给客户
Restful:View->(Controller->Services->Data)
前端负责视图的数据填充和页面设计,后端负责接收前端请求、调用对应的服务(通常是多层次的),服务再调用数据数据处理的API,最后把处理后的数据(Json)返回给前端
CSR和SSR
前者是客户端渲染(Client-side Rendering),后者是服务端渲染(Server-side Rendering)
定义 | 页面在服务器上生成并发送完整的HTML文档到客户端浏览器。 | 页面的基本结构从服务器加载,数据通过AJAX/Fetch获取并在客户端动态填充。 |
首屏加载速度 | 较快,因为服务器直接返回完整的HTML页面。 | 较慢,首次需要加载JavaScript文件和API请求数据后才能显示内容。 |
SEO友好性 | 高,搜索引擎爬虫可以直接抓取完整页面内容。 | 低,传统搜索引擎可能难以抓取由JavaScript动态生成的内容。 |
用户体验 | 初次加载快,但后续导航可能会重新加载整个页面。 | 初始加载稍慢,但一旦加载完成,页面间切换速度快,体验流畅。 |
开发复杂度 | 相对较低,尤其是对于传统的Web应用。 | 较高,涉及到前端路由、状态管理等概念。 |
资源消耗 | 服务器承担了更多的计算工作,增加了服务器负载。 | 减轻了服务器压力,但增加了客户端设备的负担。 |
适用场景 | 适合SEO要求高的网站,如博客、新闻门户等;对首屏加载时间敏感的应用。 | 适用于交互性强的应用,如单页应用(SPA),社交网络平台等。 |
数据获取方式 | 在服务器端进行数据获取,并将结果嵌入到HTML中。 | 通过AJAX或Fetch API异步请求数据。 |
缓存机制 | 可以利用CDN缓存整个页面,提高访问速度。 | 常使用局部缓存策略,比如组件级别的缓存。 |
实时更新能力 | 弱,通常依赖于全页刷新来实现内容更新。 | 强,能够实现局部刷新,提供更好的用户交互体验。 |
计算机编程合集 文章被收录于专栏
本专栏包含Java、MySQL、JavaWeb、Spring、Redis、Docker等等,作为个人学习记录及知识总结,将长期进行更新! 如果浏览、点赞、收藏、订阅过少,考虑停更或删除了(😄有点打击积极性)