Sun的Java 2 Enterprise Edition(J2EE)平台已经成为使用最广泛的Web程序设计技术,该技术主要支持两类软件的开发和应用:一类是做高级信息系统框架的Web应用服务器(Web application server),另一类是在Web应用服务器上运行的Web应用程序(Webapplication)。大家知道,全球主要的商业网站和管理信息系统大多采用J2EE平台作为首选的Web开发技术,每一个Web应用服务器都将需要企业开发和运行多种Web服务软件;最近几年,J2EE Web程序的开发已经成为信息系统的关键,熟悉并能熟练运用J2EE技术的软件工程师已经成为炙手可热的人才;然而,J2EE技术比较复杂难懂,它牵扯到的Web和JAVA技术五花八门,学习者需要对各种技术有全面理解,但又要有侧重;只有这样才能做到融会贯通,得心应手;下面我们从Web技术的发展历史、Web层次结构、J2EE Web编程技术特点以及J2EE1.4 Web技术框架来学习、探讨和理解Java Web技术应用。
随着互联网技术突飞猛进地发展,开发Web软件越来越复杂,程序开发人员应该对Web技术有系统的理解。首先,让我们回顾互联网技术的发展,从而深入分析Web编程的基本概念。典型的Web模型将计算机网络分为若干个相关层,早在20世纪80年代,国际标准化组织(ISO)提出了OSI网络抽象模型,将互联网系统分为七层(见下图1);最底层是物理层(physical)和数据链路层(data link),其上依次是网络层(network)、传送层(transport)、会话层(session)、表示层(presentation)和应用层(application),每一层都代表特定的功能组合;底层功能通过提供服务接口支持上层功能,物理层主要描述网络中通信机制的信号和连接特性,数据链路层定义在物理层之上的数据传送状态,网络层定义了在由数据链路组成的互联网中怎样查找和分发数据,传送层用于保证数据在网络中正确传递,会话层定义数据包在传递时相互组织关系,表示层描述数据类型在网络传递时的格式,应用层定义用户使用的互联网功能(如telnet,FTP,E-Mail);互联网发展的过程伴随着标准化的过程,在各个功能层都需要定义标准化的网络协议(Protocol)。例如在网络层,每个网络主机都要设置一个IP地址并以互联网协议规定数据从它的始发地到目的地选择的路径方式;在传送层,TCP规定了允许不同计算机共享一个网络上的信息的通信协议;在应用层HTTP定义了在WWW上的文档传递协议;在20世纪90年代被迅速推广的HTTP和HTML真正实现了互联网的广泛应用;用户不必掌握telnet或FTP的操作命令就可以轻松访问网页,基于互联网的电子商务因此成为IT行业的热点而带动了全球经济的发展,处理和产生HTML的技术(如JSP,ASP,CGI等)成为主要的Web编程语言;在最近几年,Web服务(Web Service)成为下一代的互联网功能层次,它定义了如何在HTTP之上利用XML语言和SOAP,UDDI等网络服务协议集成和查找互联网上的服务程序。
图1 互联网功能层次
纵观互联网的发展过程,有两种现象值得注意;首先,底层功能的完善会优化上层功能,上层功能的推广又对底层功能提出更高要求,当Web硬件能提供高速度和带宽时,软件公司才可能开发出满足用户需要的程序;Web系统被大量使用往往使现有系统不能满足需求,这就要求开发出新的硬件和软件系统。例如,在HTTP协议上,最先只有HTML作为文档编辑语言,当Web浏览器(IE,Netscape)成为计算机必不可少的上网工具时,动态的Web设计语言(如Java Servlet/JSP,ASP,CGI)应运而生,其后由于这些语言需要占用系统计算资源,高速的Web应用服务器软件和主机成为大型网站必不可少的配置;Java技术提供的Web编程技术就是在这样的发展背景下被开发和广泛使用的,这些技术主要基于传送层和应用层的协议和程序接口,从而提供了高效、可靠、实用的Web程序平台。