Contents
  1. 1. Servlet的出现
  2. 2. JSP的出现
  3. 3. Model 1模型
  4. 4. Model 2模型(MVC)
  5. 5. 三层架构
  6. 6. 参考

Servlet的出现 -》 JSP的出现 -》 Model 1模型 -》 Model 2模型(MVC)-》 三层架构

Servlet的出现

1996年Sun公司首次推出Servlet技术来解决Web程序当中的性能问题。
优点:

  • Servlet在首次被用户请求的时候加载到内存当中,之后将一直驻留在内存里,对同一个servlet的后续请求将不用再对这个servlet的类进行实例化,这种机制大大提高了Web应用程序的响应速度

缺点:

  • 在编写Servlet的时候要将所有HTML输出代码都封装在String对象里,然后再用out对象的print方法向用户展示出来,这增加了编码的难度
  • 维护起来十分麻烦,即使稍微一点点的改动也需要重新编译Servlet才行。

JSP的出现

Sun公司意识到了这个问题,并提出了JSP技术。

优点:

  • JSP允许Java代码和HTML标签混杂在一起以简化页面的开发。
  • 修改页面无需重新编译,当第一次被请求的时候如果原先的JSP有变化则重新自动编译,如果没有变化则直接加载已经存在的实例。

缺点:

  • Java代码和HTML代码(逻辑和显示)混杂在一起使得程序变得难以阅读和维护
  • 把代码放在JSP当中很难重用,这与面向对象的思想是相悖的。
  • JSP当中编写代码IDE对此支持的并不是那么十分的出色。
  • 测试变得困难。

Model 1模型

Java语言开发Web应用的第一种设计模型Model 1,只用JSP不使用Servlet,并且使用JavaBean、JSTL(JavaServer Pages Standard Tag Libraries,JSP标准标签库)等技术将业务逻辑代码封装,从而一定程度上把显示和业务分开。

20140826004648312.jpg

优点:

  • 实现比较简单,适用于快速开发小规模、需求稳定的项目。

缺点:

  • 不利于大型项目的网页设计师和Web开发人员之间的劳动分工:开发人员既要参与页面的开发,又要参与业务逻辑的编码。
  • 维护困难,应对需求变化薄弱。比如,由于JSP页面之间的联系是通过链接完成的,一旦页面名字改变那么任何使用这个页面的其他页面都要更改,严重的违背了面向对象的思想。

Model 2模型(MVC)

为了分离控制,第二种设计模型出现了,称之为Model 2,也MVC(Model-View-Controller,模型-视图-控制器)设计模式的另一个名字。

20140826004833181.jpg

按照Model 2模型开发的应用程序由三种主要部分组成:

  • Controller层负责接收来自用户输入,调用业务逻辑,控制View部分做出相应的变化,由Servlet充当。
  • Model层包含了业务逻辑与持久数据,由Java Bean充当。
  • View层仅作信息显示,由JSP充当。

优点:

  • 由于引入了MVC模式,使Model 2具有组件化的特点。
  • 更适用于大规模应用的开发。

缺点:

  • 增加了应用开发的复杂程度,对开发人员的技术要求也提高了。

不太明白在写什么:
所有的页面都有一个共同的入口点,通常是用一个Servlet或者过滤器(其中Struts1用的是Servlet,而Struts2用的是过滤器)来充当控制器。每一个HTTP请求都必须定向到控制器,而潜在各个请求中的URI里的信息将告诉这个控制器需要调用哪些动作。控制器检查每个URI以决定应该调用哪些动作。它还将动作对象保存在一个可以从视图访问的地方,这样服务器端的值就可以显示在浏览器上了。最后控制器使用RequestDispatcher对象把请求传递给视图(即相应的JSP页面),再由JSP页面里的定义标签把动作对象的内容显示出来。


三层架构

Model 2模型“数据访问”与“业务逻辑”混到了Model层,这样导致两者之间耦合无法解除,也就意味着,无法对“数据访问”的逻辑进行抽象,所以“数据访问”逻辑的改变(比如更换数据库)必将引起“业务逻辑”的改变,而现实中“数据访问”逻辑又是很容易改变的地方,所以要将Model2模型的Model层继续分离,将“数据访问”的职责单独抽到一层“持久化逻辑”中。由此产生了经典的三层架构

20140826004838812.jpg

所谓三层指的是:

20140826004844616.jpg

三层架构是一种较正规的开发模型。它对每个易改变的层进行抽象,从而从依赖于实现转到了依赖于抽象,从而可以更好的应对需求的变化。


参考

Contents
  1. 1. Servlet的出现
  2. 2. JSP的出现
  3. 3. Model 1模型
  4. 4. Model 2模型(MVC)
  5. 5. 三层架构
  6. 6. 参考