11.JavaWeb基础 Mode I 和 ModeII(MVC)









一.Mode I




Mode I 就是指在开发之中将显示层、控制层、数据层的操作统一交给JSP或JavaBean来进行处理。



  Mode I 的处理情况分为两种:一种是完全使用JSP进行开发;另外一种是JSP+JavaBean

的模式进行开发。下面分别对这两种情况进行说明:




纯JSP:

  用户发出的请求(request)交给JSP页面进行处理。如果是开发小型的Web程序,为了开发快

速和便利,通常会把显示层和逻辑运算层都写在JSP页面中:


优点:


  1.开发速度加快,程序设计人员不需要额外编写JavaBean或Servlet,只需要专注开发

    JSP页面即可。

  2.小幅度修改程序代码较为方便。因为没有用到JavaBean或Servlet,所以在修改程序

    时,直接修改JSP后,再交给Web容器重新编译即可。而不用像写JavaBean或Servlet

    要先将Java源文件(*.java)编译成类文件(*.class),再放在Web容器上才能够执行。



缺点:


  1.程序可读性很低。因为程序代码和网页标记都混在一起了,这会增加维护的困难度和复杂度。

  2.程序可重复利用性低。由于将所有程序代码都直接下在JSP页面上,并没用把常用的程序写成

    组件的形式加以重复利用,因为造成程序代码过于繁杂、难以维护。







JSP+JavaBean:

  若将显示操作都写如JSP页面中,而业务层都写成JavaBean的形式,将程序代码封装成组件。这

样,JavaBean将负责大部分的数据处理,如执行数据库操作等(类似于DAO),再将数据处理的结果

返回到JSP页面上进行显示。






优点:


  1.程序可读性较高。因为大部分程序代码都写在JavaBean形式,不会和网页显示标记混在

    一起。这样,后期的维护中,能够较为轻松。

  2.可重复性很高。由于核心业务代码使用JavaBean开发,因此可重复使用此组件,可以大大

    减少编写重复性程序代码的开发工作。




缺点:


  没有流程控制。程序的每一个HSO页面都需要检查请求参数是否正确、条件判断、异常发生时需要

处理,而所有的显示操作都与具体的业务代码紧密耦合在一起,日后维护也是很困难。








总的来说:


  Mode I 的结构最适合小型的程序开发,或是复杂度较低的程序,因为 Mode I 最大的优点

就是开发速度较快,但是在进行维护的时候需要付出更大的代价。如果程序复杂度太大,纵使可以

快速地开发程序,但是后续的维护才是最重要的问题,考虑到代码的维护在开发中的地位,所以很

多使用的还是 Mode II。











二. Mode II (Model-View-Controller)

  在Mode II 中所有的开发都是以Servlet为主体展开的,由Servlet接受所用的客户端

请求,然后根据请求调用相应的JavaBean,并将所用的显示结果交给JSP完成,也就是俗称

的:MVC设计模式。





MVC是一种设计模式,它强制地使应用程序的输入、处理和输出分开。MVC设计模式被分为三个核

心层:模型层、显示层和控制层。它们各自处理自己的任务,各层的任务如下:



显示层:主要负责接受Servlet传递的内容,并且调用JavaBean,将内容显示给用户。


控制层:主要负责所有的用户请求参数,判断请求参数是否合法。


模型层:完成一个独立的业务操作组件,一般都是以JavaBean或者EJB的形式进行定义的。








  在MVC模式中,最关键的部分是使用RequestDispatcher接口,因为内容都是通过此接口

保存到JSP页面上进行显示的。



当用户有请求提交时,所有的请求都会交给Servlet进行处理,然后由Servlet调用JavaBean,

并将JavaBean的操作结果交给RequestDispatcher接口传递到JSP页面上,由于这些要显示的

内容只是在一次请求-回应中有效,所以在MVC设计模式中,所有的属性传递都将使用request属性

的形式进行传递,这样可以提升代码的操作性能。





为什么要用request属性进行传递?



page : 只能在本页面中保存,跳转后无效,这个属性是第一个被排除的。



request、session、application属性而言。保存范围越大的占用内存就越多。reqeust

范围所保存的事件是最少的,内存占用量也就比session和application少,所以性能是最高的。


但是,如果某些属性需要在一次会话中保存,那么肯定就要使用session进行保存了,一般都是在

用户登录验证操作中使用session的。









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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值