Web项目框架
2021-01-22
Web项目框架涉及到的技术包括:数据库、计算机网络、前后端开发、前后端框架、Web 应用服务器、负载均衡、大量并发访问等等。
同时还涉及到优化:数据库优化、网络优化、前后端代码优化、前后端框架优化、Web 应用服务器优化、负载均衡优化等等。
目前来说,Web开发主要是前后端开发两块。早期前后端不分离,现在前后端分离。
说到web项目,我们知道,信息是通过网络传输的,因此需要学习《计算机网络》才能更深入的理解。
并且这里涉及到需要将项目发布到网站的技术,即Web 应用服务器,比如用Tomcat等。
同时这里还涉及对数据的操作,数据大都存储在数据库中,所以需要学习《数据库》才能更深入的理解。
Web项目框架- 前端框架的发展史
前端的演化史是: JSP --> JSP+CSS+JavaScript --> HTML+CSS+JavaScript --> Bootstrap框架 --> VUE框架
JSP是java服务器页面。
所以前端开发的最基础的是 HTML+CSS+JavaScript ,前端框架如Bootstrap框架、VUE框架都是在此基础上演化而来。
Web项目框架- Java的发展史
前端主要采用HTML+CSS+JavaScript及其发展品(Bootstrap 、VUE等),后端主要是Java语言比较多(当然也可以用python、C++等等。),由Servlet及其发展品(SSH、SSM、SpringBoot、SpringCloud等),其发展过程如下所示:
1)前端(JSP+CSS+JavaScript) + 后端JAVA(Servlet) -- mysql数据库用jdbc包,web服务用Tomcat启动,且这个阶段没有严格意义的前后端。
-- 之后出现了MVC框架(Model-View-Controller)
2) 前端(JSP+CSS+JavaScript) + 后端JAVA {SSH - (Struts,Spring,Hibernate)} -- 数据库用Hibernate,web服务用Tomcat启动,且这个阶段没有太清楚有前后端。
3)前端(JSP+CSS+JavaScript) + 后端JAVA {SSH - (SpringMVC,Spring,Hibernate)} -- 数据库用Hibernate,web服务用Tomcat启动,且这个阶段有前后端概念。
4) 前端(JSP+CSS+JavaScript) + 后端JAVA {SSM - (Spring+SpringMVC+MyBatis)} -- 数据库用MyBatis,web服务用Tomcat启动,且这个阶段有前后端概念
5)前端(HTML+CSS+JavaScript) + 后端JAVA {SSH - (SpringMVC,Spring,Hibernate)} -- 数据库用Hibernate,web服务后端用Tomcat启动,且这个阶段前后端开始分离。
6) 前端(HTML+CSS+JavaScript) + 后端JAVA {SSM - (Spring+SpringMVC+MyBatis)} -- 数据库用MyBatis,web服务后端用Tomcat启动,,且这个阶段有前后端开始分离。
7)前端(Bootstrap ) + 后端JAVA {SSH - (SpringMVC,Spring,Hibernate)} -- 数据库用Hibernate,web服务前端用NodeJS等,后端用Tomcat启动,且这个阶段前后端开始分离。
8)前端(Bootstrap ) + 后端JAVA {SSM - (Spring+SpringMVC+MyBatis)} -- 数据库用MyBatis,web服务前端用NodeJS等,后端用Tomcat启动,,且这个阶段有前后端开始分离。
9)前端(VUE ) + 后端JAVA {SSM - (Spring+SpringMVC+Hibernate)} -- 数据库用Hibernate,web服务前端用NodeJS等,后端用Tomcat启动,,且这个阶段有前后端开始分离。
10)前端(VUE ) + 后端JAVA {SSM - (Spring+SpringMVC+MyBatis)} -- 数据库用MyBatis,web服务前端用NodeJS等,后端用Tomcat启动,,且这个阶段有前后端开始分离。
-- 开始进入微服务
11)前端(HTML+CSS+JavaScript) + 后端JAVA (SpringBoot)-- SpringBoot内嵌了web服务部署工具,我们可以自由选择用Hibernate或者MyBatis操作数据库,前后端分离。
12)前端(VUE) + 后端JAVA (SpringBoot)-- SpringBoot内嵌了web服务部署工具,我们可以自由选择用Hibernate或者MyBatis操作数据库,前后端分离。
web服务的部署,后端除了Tomcat还有其他,这里暂不介绍;前端也是;
前端的演化史是: JSP --> JSP+CSS+JavaScript --> HTML+CSS+JavaScript --> Bootstrap框架 --> VUE框架
后端的演化史:JSP+Servlet --> Struts+Spring+Hibernate --> SpringMVC+Spring+Hibernate --> SpringMVC+Spring+MyBatis --> SpringBoot(引入Hibernate/MyBatis ) --> SpringCloud
严格来说,JSP也是后端的一部分,前后端未分离。
JAVA后端开发的基础技术是 JSP+Servlet, 之后出现的 SSH、SSM、SpringBoot等都是基于此发展起来的。
前端开发:
后端开发:
针对Java语言开发的Web后端框架主要是早期的 JSP+Servlet。
SSM和Springboot框架比较的优缺点:
一、SSM优缺点应该分开来说的,比如
1)spring 不说了,核心ioc、aop技术,ioc解耦,使得代码复用,可维护性大幅度提升,aop提供切面编程,同样的增强了生产力。
2)spring mvc嘛,是对比struts2等mvc框架来说的,不说struts2爆出的那么多安全漏洞,而且是类拦截,所有Action变量共享,同时是filter入口的,而spring mvc是方法拦截,controller独享request response数据,采用的serlvet入口,与spring无缝对接。开发而言,spring mvc更加轻量和低入门。
3)mybatis嘛,看业务场景,主要是mybatis的sql可以由开发者去掌控和调优,相对hibernate等orm框架来说,更加直观。在业务场景比较复杂,sql好多联合关联的情况下,mybatis谁用谁知道。当然缺点就是对sql不熟悉的开发者就不太友好了。
二、 SSM框架和spring boot全家桶相比有哪些优缺点? 这两者对比起来有点奇怪。因为SSM是WEB应用框架,涵盖整个应用层,而spring boot你可以看做一个启动、配置、快速开发的辅助框架,本身针对的是微服务。
springboot 只是为了提高开发效率,是为了提升生产力的:
1、springboot一个应用是一个可执行jar(启动类main方法启动web应用),而不像传统的war,内嵌tomcat容器,可以jar形式启动一个服务,可以快速部署发布web服务,微服务最好不过了。
2、将原有的xml配置,简化为java配置
3、当然结构可能跟一般的ssm有一定区别,但其实主要是在资源文件。