javaWeb中的Model1和Model2

一、传统的Model1和Model2

    在传统的Model1中,Web由大量JSP和少量用于访问数据库的bean组成,jsp兼顾V层和C层的工作。

    在传统的Model2中,servlet负责处理用户请求,调用更深层的javabean进行数据处理,然后将处理过的数据转发给jsp视图,视图进行数据解析和显示。

     205234_5iam_2481244.png

    如图,既然这样,大家看到这里应该能明显地感受到转发和重定向的区别了,它们是两个世界的产物,为了严格区分,我可以这样说(并不专业):转发和重定向完全是两个世界的产物。

    转发:C层把M转发给V层,V层进行渲染呈现(实际上JSP在服务器上也是一个Servlet,不懂百度)。转发是服务器内部的操作,与用户八竿子打不着。

    重定向:重定向是告诉用户,你重新请求服务器资源吧,我不想返回一个JSP页面给你。

 

    我想起了我做的第一个java online judge网站了,当时全部使用JSP页面完成相应功能,要完成一些编译工作都是调用一些简单的java对象,甚至使用static方法,这不正是Model1吗?因此,Model1是大多数入门者都能想到的java web处理方法吧,我相信大部分入门者都有在jsp里面调用过连接数据库的经历!

    在使用model1的你,应该并没有过多地想到过MVC的思想!

 

    后来慢慢开始入门了,别人教了你分层的思想,什么dao,service,servlet,然后开始分层书写,开始学习servlet3.0基于@WebServlet的注解,开始学习了JDBC,开始学习了JSP,然后看书了解了一点JSP的深层知识,然后开始写一个简单的有条理的JAVA WEB网站,恭喜啊!已经开始深入学习Model2了呢!

    学完model2之后,你就能够初步理解MVC的真正思想了吧!

    学完所谓的 Model2后,我理解了一下上面第一幅图,这样归纳:

       JSP属于View层,Servlet属于Controller层,dao,service,entity属于Model层,为什么后面的三个都是Model层?因为我理解的是后三个都是对数据进行处理java代码,所以是model层!

 

二、web的MVC和早期的MVC思想

web是基于一种啥子模式?请求/响应模式,是不是嘛?也就是说用户不发送请求,视图就不能什么自己?更新自己,是不是嘛?

而传统的MVC程序,当模型层数据发送改变时,可以通知模型层进行相应的改变。

因此,web应用的mvc思想与观察者模式存在一定的相似之处,但又不完全一样。

读到这里,用户只需要明白,传统的MVC思想是不是就是web的MVC思想?不是嘛!web的CVM思想是在传统的MCV思想之上改变了一定的结构嘛!

(MCV MVC CVM CMV,顺序应该没什么影响吧?)

转载于:https://my.oschina.net/qkmc/blog/898985

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值