1.0版本javaWeb:原始servlet+jsp+jsbc

在这里插入图片描述
早期的jsphtml+java页面先在后端解析里面java代码动态渲染完成后,成为html,再通过服务器发送浏览显示

在这里插入图片描述

缺点:

服务器压力很大,因为无论是jdbc数据库查询servlet请求接受,还是jsp页面动态渲染,都是在服务器端进行的。

2.0阶段javaWeb基于MVC思想servlet+jsp+jdbc

在这里插入图片描述

缺点:

java本质面向对象,当代码量变大,对象管理变的混乱不堪。
譬如我想在controller中用一次model对象,就得new一次。想在controller中用一次view对象,就得new一次

3.0阶段:javaWeb基于MVC思想的“SSH框架(Struts+Spring+Hibernate)+jsp

在这里插入图片描述

3.5阶段 javaWeb基于MVC思想的“SSM框架(SpringMvc+Spring+Mybatis)+jsp

在这里插入图片描述

4.0阶段:前后端分离thymeleaf

5.0阶段 springboot

javaweb:用java来做web程序,一般都是bs模式
javaweb流行框架servlet+jsp+jdbc
jdbc:提供一系列api,用java访问数据库
servlet服务端小程序,接受浏览器发过来的请求并做业务处理
jsp:java服务端页面。
早期的jsp:html+java,页面先在后端解析里面的java代码动态渲染完成后,成为html,再通过服务器发送浏览显示
早期javaweb对于服务器压力很大,因为无论是jdbc数据库查询servlet请求接受,还是jsp页面动态渲染,都是在服务器端进行的。

此时mvc出现了,分为model+controller+view
model处理业务,包括和数据库交互
controller:接受请求然后转发给相应model业务组件处理
view:页面渲染
javaweb变为基于mvcservlet+jsp+jdbc
但是javaweb本质还是java,java本质面向对象
即使是基于mvcservlet+jsp+jdbc,当代码量变大,也会变得混乱。譬如我想在controller中用一次model对象,就得new一次
想在controller中用一次view对象,就得new一次。
此时,spring出现了。
spring就是用来管理对象的,把对象起了个新名字,叫bean
spring中放对象的东西,叫ioc容器
同时,struts取代了之前的原生servlet开发
mybatis/hibernate取代了原生jdbc开发
具体来说,一个servelet对应一个请求处理
要写个servlet类,
继承httpservlet类并重写里面dogetdopost方法,分别对应getpost请求(或者用@webservlet注解配置。)
最后web.xml配置
然后把所有的servlet放到一个目录下,譬如com.xxx.servlet
现在变成,struts一个xml文件管理所有servletservletstruts里叫action
所以javaweb整体演变成了:基于mvcssh框架:(structs+hibernate)jsp
spring做整体ssh框架整合,作为管理者
后来spring推出了springmvc成功替代了struts,用来接收处理请求
所以javaweb渐变成了:基于mvcssm框架springmvc+spring+mybatis)+jsp
注意springmvcmvc不是一种东西,前者是用来接受和处理请求技术框架,后者是上文提到的思想。
ssm框架的项目一般都有三个包:
controller包,使用的是springmvc对应mvc中的controller
servicedao/mapper层,service业务层,会交由springioc来管理。dao/mapper使用mybatis对应mvc中的model
jsp对应mvc中的view
此时,虽然框架简化了,但是大部分压还是集中服务器这里
真正地前后端分离时代开始了,数据渲染丢给前端了。
前端需要数据就给后端request后端处理完成后就给前端返回responsejson由此出现
jsp最大缺陷是,前端不好调试,怎么样都会设计后端的地方。无法像html一样在浏览器中打开,要先启动服务器,通过servlet来动态渲染或者后端开发好再手动替换html。这也是为啥最开始的后端开发,都要会基础的前端知识原因
于是,thymeleaf模板引擎出现了,他写出的页面就是html页面,不经过后端,就可以直接浏览解析,方便了前端调试页面。但并没有真正达到前后分离效果,因为想要真正显示完整的页面,还需要后端controller层返回数据
此时前后联调要轻松许多,但是后端的配置依旧繁琐。
譬如,spring要管理所有的对象,那么他怎么知道一个类的一个对象是一个bean呢,怎么知道两个bean之间依赖关系捏?
除开spring整合springmvcmybatis,其他三方等等。项目开发好后需要打成war包,发布tomcat执行这个过程也需要一堆配置
这时,spring提出了一个公约,将经常使用核心组件的对象抽取出来,自动加入ioc中,再在外部提供一个固定配置文件application.properties/application.yml里面自定义配置
就是,约定大于配置,即自动化配置
基于该思想下,springboot出现了!
springboot自带tomcat,不需要像以前ssm一样打成war包再发布tomcatwebapps下面。
同时springboot很多场景抽象启动starter,在启动器下导入maven依赖即可达成自动化配置,从而直接开发,专注于自己业务逻辑
springboot有个问题,它不支持jsp官方支持的是thymeleaf
此时前端也有自己发展vuereactangular三大js框架,使得前端也可以自己单开一个项目了。

原文地址:https://blog.csdn.net/zhiaidaidai/article/details/133751041

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_43036.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注