弱弱的说一句: jsp在web服务器上,这一点应该没有疑问吧?

首先很俗套地看下两个模型.

Model1就是实现,实现就行,系统简单,谈不上架构,正如简单工厂并不算在23个常用设计模式之列一样.Model1的前身是

所有的业务逻辑都写在Jsp里,和简单工厂没什么区别,从面向对象的角度来说就是职责不单一,不符合开闭原则.Model1将业务逻辑分离出来,一定程度上减轻了jsp的职责.但是,我们可以看到jsp负责取得页面参数,调用业务逻辑,渲染页面等,这又像我们很早之前用三层实现的机房收费系统,U层负责取得数据,调用业务逻辑,显示数据等,甚至会包含一些对数据的判断,如输入框是否为空之类的.严格上说,显示层就是负责显示页面的,不包含业务逻辑.于是,Model2就分离出控制部分,即Servlet.

看起来,它们就差了一个Servlet!但Model1并不是少Servlet,这时候我来猜测一下的话,就会觉得Servlet一定被集成到jsp中,下面看一个事实:在用Model1模型做的页面中(假设页面名称为login.jsp),表单提交到Servlet部分实现代码是:

name="myForm" method="post"action="login.jsp">也就是说,它提交到自身了.这是不是说明jsp真的集成了Servlet呢?

其实,Model1与Model2真正的区别在于,一个自动生成Servlet,一个手动编写.当工程很大的时候,写到jsp中的内容就会又多又杂又乱,于是我们将它分开来,便于修改和维护.

Servlet是怎么工作的呢?

先得注册Servlet.然后映射Servlet的对外访问路径,通过URL地址访问web服务器中的Servlet.可在web.xml中配置如下.

myServlet

myServlet

myServlet

/servlet/myServlet

我们在新建java类后让他继承httpservlet,重写里面的Service,即doGet和doPost方法,当Servlet被实例化和初始化之后,即可处理请求,将request和response作为参数传递,完成后续功能.

Model2是mvc的实现,也是三层的实现,之前看到很多人讨论它们之间的关系,众说纷纭.简单来说,三层是一种分层的思想,它代表着解耦.MVC是一种实现,它使用的正是三层的思想,而它和经典三层又不一样,不同之处主要表现在各层之间互相调用的关系上.

原文:http://blog.csdn.net/zhuanzhe117/article/details/40046817

java model1和model2_Java项目(4)——探究两种开发模型的异同-Model1与Model2相关推荐

  1. C/S和BS两种开发模型

    C/S和BS两种开发模型 一.什么是C/S开发模式? 二.什么是B/S开发模式? 三.C/S和B/S的优缺点 一.什么是C/S开发模式? C/S⼜称Client/Server或客户/服务器模式.服务器 ...

  2. Java学习笔记:创建线程的两种方法

    Java学习笔记:创建线程的两种方法 一.预备工作 1.创建Maven项目ThreadDemo 2.在pom.xml里添加依赖 二.继承Thread类创建子线程

  3. Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  4. 在java程序中定义的类有两种成员_java试题 急需答案 谢谢!!!

    三.填空(每小题2分,共10分)1.在Applet中,创建一个具有10行45列的多行文本区对象ta的语句为:2.创建一个标识有"关闭"字样的标签对象gb的语句为.3.方法是一种仅有 ...

  5. Java 解析Excel(xls、xlsx两种格式)

    Java 解析Excel(xls.xlsx两种格式) 一.环境 JDK 1.8 二.JAR 1.commons-collections4-4.1.jar 2.poi-3.9-20121203.jar ...

  6. [转]DES加密 java与.net可以相互加密解密两种方法

    [转]原文地址:http://jumpman.javaeye.com/blog/605996 DES加密 java与.net可以相互加密解密两种方法 文章分类:Java编程 通过这个方法可以实现jav ...

  7. javaweb学习总结(二十一)——JavaWeb的两种开发模式

    SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. 一.JSP+JavaBean开发模式 1 ...

  8. javaweb学习总结(二十一):JavaWeb的两种开发模式

    SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. 一.JSP+JavaBean开发模式 1 ...

  9. javaweb(二十一)——JavaWeb的两种开发模式

    一.JSP+JavaBean开发模式 1.1.jsp+javabean开发模式架构 jsp+javabean开发模式的架构图如下图(图1-1)所示 图1-1 在jsp+javabean架构中,JSP负 ...

最新文章

  1. 点分十进制IP校验、转换,掩码校验
  2. 遗传:细菌、真菌和动植物的泛基因组研究进展
  3. 《敏捷制造——敏捷集成基础结构设计》——1.2相关问题的国内外研究现状
  4. 【转】不用软件,解压Win8/Win8.1的install.wim文件
  5. 编写程序将一行英文中指定的字符串替换为另一字符串后输出。注意:查找指定字符串_python 3 笔记(一)...
  6. 上海东海学院计算机,上海东海职业技术学院
  7. mysql抓取csv_如何将.csv数据上传、提取、存储到服务器并传输到mysql
  8. bzoj 5093 [Lydsy1711月赛]图的价值——第二类斯特林数
  9. 主要由javascript实现的网页打字小游戏
  10. Linux安装和卸载JDK8详解
  11. Clearcase, SVN, Git之我见
  12. Spring Boot 静态资源处理
  13. 如何解决Worm.Win32.AutoRun.bqn(文件夹改exe病毒)
  14. 对 ESX/ESXi 上的网络和 TCP/UDP 端口连接问题进行故障排除 (2020669)
  15. Gerry。沙漠苦旅。
  16. 券商Robinhood大量客户被最低价格强平-交易成本拉大500倍,游戏驿站GME只能平仓不能开仓-看看行政总裁Vlad Tenev是如何回复这些问题的?
  17. python pandas csv 写文件_Pandas读写CSV文件的方法介绍(附代码)
  18. 今日收获总结 (前端知识点3)
  19. anaconda使用arcpy库
  20. 自媒体全是带节奏的标题党,不是创作者不行,而是用户们想看

热门文章

  1. 如何用JavaScript判断客户端浏览器是否安装了Flash插件,及其版本
  2. ubuntu如何删除刚添加的源?
  3. C++灵活易错特性-02
  4. 【转载】ubuntu换源
  5. 【Java】访问控制
  6. Linux之chmod命令
  7. linux hosts和hostname
  8. Gartner:第三季度全球服务器收入下滑5.8% 出货量减少2.6%
  9. android monkey 测试方法实践
  10. swith 好久不用都忘记了