一、[JAVA WEB]Java Web发展史介绍

参考文档:
https://www.cnblogs.com/whx7762/p/7723508.html
https://blog.csdn.net/weixin_39893958/article/details/84389384
https://www.jianshu.com/p/79781dff3fd4

简介
1995年java语言的诞生,刚好赶上了网络时代,java三大军:JavaSE(桌面程序, Java Platform Standard Edition),JavaME(手机端,Java Platform Micro Edition),JavaEE(web服务器, Java Platform Enterprise Edition—Java 平台企业版),由于java在桌面程序和手机端的开发,都赶不上其他语言写的好,很快阵亡,然而发现,java简直就是为服务器而生的语言,由于项目都是发布在linux服务器上的,而java很重要的特性就是与平台无关性,因为java程序都是用在java虚拟机上运行的,所以不管是什么平台,只要安装了jvm就可以运行java程序,做到了一次编译,到处运行(Write Once,Run anyway),所以java语言很快就占领了web市场。javaweb就是用java语言编写的web应用,最开始开发初期,sun公司(现在已被Oracle公司收购)推出了Servlet技术,提供了开发web应用的基础.

JavaWeb发展历程

1、Servlet出现之前
1.1 静态资源
Servlet出现之前,用户使用浏览器向WEB服务器发送的请求都是请求静态的资源,比如html、css等。
1.2 CGI时代
CGI全称是通用网关接口(Common Gateway Interface),他属于动态页面的解决方案。

2、 Servlet时代
2.1 纯Servlet开发

SUN公司刚刚推出JavaEE(Java企业版)时,推出了Servlet这个东西,命名就是Service+Applet,即服务小程序。Servlet可以说是Java技术中最早的Web解决方案,Servlet与普通Java类的编写非常类似。在Servlet中可以通过挨着行输出Html等语句来实现页面的样式和输出,数据的动态功能当然也就实现了。表现、逻辑、控制、业务全部混在Servlet类中。

3、 Jsp的出现
3.1 纯JSP开发
Servlet是在Java代码中写HTML代码。与之对应的就是在HTML代码中写Java代码,这就是JSP。
经过纯Servlet开发的噩梦之后,Sun公司又推出(或者说是倡导)了JSP技术,全称是Java Server Page,JSP中采用HTML语言直接生成界面,还可以在界面中使用<% %>脚本标识嵌入Java代码,揪其本质也是最终生成一个Servlet类来编译解析。如果要开发具有大量网页内容的网站,可以先使用网页编辑工具编写网页,然后在网页中嵌入处理代码即可。

3.2 JSP+JavaBean(Model1)
这种开发模式有一个简单的分层 JSP:表现层、控制层 JavaBean:模型层 利用我们现在熟悉的MVC模型的思想去看,虽然编写代码十分容易,但Jsp混淆了MVC模型中的视图层和控制层,高度耦合的结果是Jsp代码十分复杂,后期维护依旧困难。

3.3 Servlet+JSP+JavaBean(Model2 时代)
在这种开发模式下,JSP页面中就可以不用任何的<%%>语句了,包括<%=%>全部用EL表达式来代替,列表的遍历和条件判断等(Java中的for循环和if语句)也可以通过JSTL来代替。 这样的话视图层相比较之前的开发模式来说要薄得多的多,JSP中不涉及任何的业务逻辑,前端人员修改样式也十分方便。这里可以理解为JSP为MVC设计模式中的V,即视图。

控制层通过Servlet来实现,获取前台传的参数、控制页面跳转,封装对象、向前台传输对象或者参数。并且可以由自己设计,设法用一个Servlet类实现该模块的所有功能的页面跳转。这里可以理解为Servlet为MVC设计模式中的C,即控制器。

但这里要说明的是Model2并不是一个完全标准的MVC设计模式,因为JavaBean还过于臃肿,并不能完全作为M层存在,所以将JavaBean再一次进行分割:业务逻辑、数据持久化。

4 、 框架阶段
倡导了MVC思想的jsp+javabean+servlet出现,也存在问题:
1)jsp页面中嵌入了很多java代码,使得结构很乱;
2)对于大型项目,servlet过多,转向频繁,流程,配置等不易集中管理,因而出现了struts
4.1、Struts的出现
2001年6月,struts1.0出现,struts针对jsp推出了一套struts标签,从而使得jsp中没有了Java代码,结构清晰,功能强大。针对servlet,它提供了Action类来代替了servlet,这个Action类具有servlet的功能,并且能够进行一些请求过滤和自动转码的功能。
4.2、Spring的出现
原本已经看起来很完美了,但是又有一个问题,就是我们在Action调用DAO、Java bean等对象的时候都需要在自身代码中构建它们的对象来使用,这样增加了程序的耦合性,这与我们:“高内聚、松耦合”的思想不符合,那么怎么解决这个问题呢?因而出现了Spring框架。

Spring框架有两大功能:IOC(控制反转)和AOP(面向切面的编程),其中IOC就是说:当一个类中想要调用另外一个类的对象时,不需要再通过new 关键字来创建,而是由Spring框架来负责:创建、分配和管理,从而降低了程序中的耦合性。而AOP可以用来做一些日志的打印和输出,用于提示程序执行过程中的一些具体信息等。
4.3、SpringMVC的出现
SpringMVC通过“基于注解”的方式代替了struts,并且通过Controller类来代替和实现了Action的功能。由于是基于注解的,所以很多的配置信息放在了Controller类中配置,从而降低了.xml文件的配置复杂度。
4.4、Springboot的出现
SpringMVC依然

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值