Ajax简介 1.3 Web应用的发展历程


servlet向前迈出了很大一步。servlet提供了对整个Java应用编程接口(API)的完全访问,而且提供了一个完备的库可以处理HTTP。不过,servlet不是十全十美的。使用servlet设计界面可能很困难。在典型的servlet交互中,先要从用户那里得到一些信息,完成某种业务逻辑,然后使用一些“打印行”创建HTML,为用户显示结果。代码清单1-1所示的代码就相当常见。

  代码清单1-1 简单的servlet代码

  response.setContentType("text/html;charset=UTF-8");
  PrintWriter out = response.getWriter();
  out.println("");
  out.println("");
  out.println("");
  out.println("");
  out.println("");
  out.println("

  以上这一小段代码可以生成图1-2所示的一个相当简单的Web页面。

 

图1-2 代码清单1-1中简单servlet的输出

  servlet不仅容易出错,很难生成可视化显示,而且还无法让开发者尽展其才。一般地,编写服务器端代码的人往往是软件开发人员,他们只是对算法和编译器很精通,但不是能设计公司精美网站的图形设计人员。业务开发人员不仅要编写业务逻辑,还必须考虑怎么创建一致的设计。因此,很有必要将表示与业务逻辑分离。因此JSP(JavaServer Pages)出现了。

  在某种程度上,JSP是对 Microsoft的 Active Server Pages (ASP)做出的回应。Microsoft从Sun在servlet规约上所犯的错误汲取了教训,并创建了ASP来简化动态页面的开发。Microsoft增加了非常好的工具支持,并与其Web服务器紧密集成。JSP和ASP的设计目的都是为了将业务处理与页面外观相分离,从这个意义上讲,二者是相似的。虽然存在一些技术上的差别(Sun也从Microsoft那里学到了教训),但它们有一个最大的共同点,即Web设计人员能够专心设计页面外观,而软件开发人员可以专心开发业务逻辑。代码清单1-2显示了一个简单的JSP。

  代码清单1-2 简单的JSP

  <%@page contentType="text/html"%>
  <
%@page pageEncoding="UTF-8"%>
    "
http://www.w3.org/TR/html4/loose.dtd">
  
  
  
  
  
  
  

  这个代码会生成图1-3所示的输出。

 

 图1-3 简单JSP的输出

  当然,Microsoft和Sun并没有垄断服务器端解决方案。还有许多其他的方案在这个领域都有一席之地,如PHP和ColdFusion等等。有些开发人员喜欢新奇的工具,还有一些则倾向于更简单的语言。目前来看,所有这些解决方案完成的任务都是一样的,它们都是要动态生成HTML。在服务器端生成内容可以解决发布问题。不过,与使用胖客户或applet所做的工作相比,用户从原始HTML得到的体验就太过单调和苍白了。下面几节将介绍几种力图提供更丰富用户体验的解决方案。

  1.3.5 Flash

  并不是只有Microsoft和Sun在努力寻找办法来解决动态Web页面问题。1996年夏天,FutureWave发布了一个名叫FutureSplash Animator的产品。这个产品起源于一个基于Java的动画播放器,FutureWave很快被Macromedia兼并,Macromedia则将这个产品改名为Flash。

  利用Flash,设计人员可以创建令人惊叹的动态应用。公司可以在Web上发布高度交互性的应用,几乎与胖客户应用相差无几(见图1-4)。不同于applet、servlet和CGI脚本,Flash不需要编程技巧,很容易上手。在20世纪90年代末期,掌握Flash是一个很重要的特长,因为许多老板都非常需要有这种技能的员工。不过,这种易用性也是有代价的。

图1-4 Flash应用

Hello World

This code is more familiar for Web developers.

Hello World

");
  out.println("

Imagine if this were more complex.

");
  out.println("");
  out.println("");
  out.close();

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3