JavaEE的开发模式

JavaEE的开发模式

什么是模式

模式在软件行业里没有固定的定义。模式其实是在开发过程中总结出的“套路”,可以认为是在开发过程中总结出的一套约定俗成的设计模式。这个模式就是,你是怎么开发的呀?你的比较好,我学学你的。

 

比如说玩游戏的时候,打怪,你这次打完之后发现先打它这里好一些,下次又发现打它那里也会好一些,所以,下次再打这个怪的时候,就有了一个战术。这个其实就叫做模式。

 

必须要提醒一点,“模式”这个词在基础班已经见过了,单例模式等23种设计模式,那23种设置模式是Java基础的设置模式,它不属于JavaEE,我们今天讲的模式主要是MVC模式,MVC模式是属于JavaEE的模式。

JavaEE经历的模式

在学习MVC模式之前,先说一下JavaEE在整个的开发历史中经历的模式,有两种,一种叫model1模式,另一种叫model2模式。现在使用的模式都是model2模式,model1模式在企业中肯定没有人用了。

model1模式

现在已经不用了。model1模式有一个技术架构,什么叫技术架构呢?就是技术组成。model1是由什么技术组成的呢?

技术组成:jsp+javaBean

昨天给大家讲过历史,一开始,JavaEE开发用的是servlet,在用的时候发现它不太好,因为输出页面的时候比较不方便,所以发明了一项技术叫jsp,发现jsp比较好,输出页面方便,而且可以在jsp中直接嵌入Java代码,于是,人们就玩命的用jsp,就把servlet给扔掉了,所以,在那个阶段,我们的开发模式都是model1模式,单纯的用jsp+javaBean,但是这种模式在开发中发现有弊端。

model1的弊端:

为什么那个年代用model1用的多呢?因为当时的项目都比较简单,可能通过几个HTML就能完成一个项目,但是随着社会的发展,好多东西都要往软件行业靠,那么,实现起来就会非常的复杂,比如淘宝这些电商,就很复杂,如果电商用model1开发,就是所有的东西都用jsp写,那就导致我的jsp页面当中,第一要嵌入很多的Java代码,第二,我这个jsp本身还要完成页面展示的功能,维护起来非常难维护,页面非常的长,东西比较多。

model1的弊端是,随着业务的复杂性(它并不是技术到瓶颈了),导致jsp页面比较混乱,逻辑上不清楚。

所以,我们现在就不用model1了,逻辑上不清楚。现在我们都用model2模式。

model2模式

技术组成:jsp+servlet+javaBean

为什么model2的技术组成是这三门技术?model2是在model1之后,肯定是model1不行了才出现了model2,model1不行了是因为它存在的弊端,是因为它在jsp页面中即写Java逻辑代码,又写页面输出代码,又写HTML,导致页面复杂,那该怎么办呢?把它们分开,把处理业务的代码分开,写到别的位置,把页面输出的代码单独的写到jsp中,此时人们就想到了遗忘很久的servlet技术。

 

jsp有它自己的优点,它的优点是页面输出;

servlet本身也有它自己的优点,它的优点就是写Java代码;

 

这样正好就可以把Java代码和页面输出代码分离开,使得逻辑开发变得很清楚。

model2的优点

优点就是使你在开发中,能够使用各个技术的最擅长的方面。

servlet擅长处理Java代码。

jsp擅长页面的显示。

 

model2其实就是我一会要讲的MVC。

MVC(属于web开发的模式)

什么是MVC呢?

M:就是model(模型),在model2当中,这个model可以认为就是JavaBean,它主要的作用就是封装数据;

V:就是view(视图),在model2当中,谁对应视图呢?jsp,它的主要作用就是单纯的进行页面数据的显示;

C:就是controller(控制器),在model2当中,谁是相当于controller呢?servlet,它做的主要工作是什么呢?它要进行些逻辑处理,获取数据,什么叫获取数据呀?还想表单,表单提交,原先提交给jsp,现在提交给servlet,servlet获取到数据之后,对数据进行封装,然后进行业务处理,如果加上后面讲的三层架构,它下一步就应该传递数据,就是传递javaBean,传递给下一层,即传递给业务层,最终的一个功能就是指派显示的jsp页面,让谁显示呢?让view即jsp显示,到底让哪个jsp显示呢?controller说了算。

 

为什么controller叫控制器呢?因为controller更像是一个管理者,你把数据给我,我收集到,封装好之后,给server层,server层拿到数据之后,最后给controller结果,controller拿到结果之后指定某个jsp进行显示。

 

比如这是我们的工厂,比方说这里有一个页面

比方说页面中有一个表单,表单可以提交表单数据

提交到服务器,现在谁负责接收你这个表单数据呢?controller,其实在这里就是servlet。

其实我们发现了,MVC跟model2可以认为就是一回事。

在JavaEE当中,谁充当controller(控制器,接收数据)呢?这个控制器其实就是servlet,它负责接收数据,接收到数据之后需要进行封装,它用什么进行数据的封装?通过javaBean进行封装,javaBean在MVC中属于Model,使用Model进行封装,封装之后交给下一层进行处理

处理之后给controller返回一个结果,controller指派某个页面进行显示,controller就把这个数据交给一个页面去进行显示,这个页面在这里就是jsp,其实这个jsp在这里充当的谁呢?最终显示的那个内容,所以在这里充当的是视图view

然后,这个jsp将数据显示在页面上

其实这个就是MVC,这个MVC就是我们的jsp、javaBean、servlet,说白了它就是model2模式。

讲到了MVC,那么,就有必要再说一下JavaEE的三层架构。

因为一般我们的开发都是MVC结合三层架构一起开发的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值