Java服务器高级编程(一)Java服务器高级编程(一)_作者.pdf





《Java服务器高级编程(一)Java服务器高级编程(一)_作者.pdf》由会员分享,可在线阅读,更多相关《Java服务器高级编程(一)Java服务器高级编程(一)_作者.pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、下载第1章We b应用开发在过去几年里,计算机领域发生了令人难以置信的变化。我们不用再被庞大、繁重的桌面应用所困扰了。随着因特网和万维网的推广,我们可以在世界各地实现信息共享,甚至进行网上交易。作为应用开发者,我们面临的挑战是需要进一步推动它的发展。随着技术的发展,需要我们开发出更快、更轻巧、更强壮的能通过 We b进行发布的网上应用。十分幸运的是,在这方面,我们有许多强大的工具可以利用。过去,如果你想通过 We b发布一个数据库驱动的应用给客户的话,你只能写一些 C G I脚本来处理格式化的数据并返回结果。但最近几年,大量的新技术出现了,剩下的问题是选择适合你和你公司的技术了。C G I给W
2、e b增添了动态内容和交互性,但存在着不少的缺点。不论是在开发上还是在可伸缩性上都存在问题,因此出现了像 I S A P I和N S A P I这类与服务器相关的 A P I。虽然它们比C G I的效率更高,但复杂性也随之提高。像 Active Server Pages(A S P,活动服务器页面)和 P H P这类脚本解决方案有助于简化We b应用开发。这些方案已经为用于处理逻辑以及与数据资源进行通信的组件提供了We b接口,这是一种创建We b应用的集成技术。为了充分发挥这些技术的潜力和提供更好扩展、更好移植的服务器端解决方案,S u n公司开发了一种新的称为s e r v l e t的技
3、术。Java servlet非常高效,这是因为它是一种基于线程的模型,在此模型中,每个请求都被占用资源少的线程来处理;s e r v l e t同时具有平台无关性,因为它通过一套标准的接口(它们构成 s e r v l e t引擎)和J a v a虚拟机来和特定的服务器结构联系。最后,J a v as e r v l e t为We b应用提供了一个面向对象的、扩展性好的中间层。s e r v l e t能访问所有如 J N D I、J D B C、R M I这类企业版J a v a的A P I函数和Enterprise JavaBeans(E J B)。本书将讨论Java servlet以及和
4、服务器端相关的J a v a技术。我们希望用浏览客户通过 s e r v l e t访问事务逻辑和数据服务的方式向读者展示,服务器端J a v a如何成为我们开发n-层应用的关键技术。我们将看到如何编写s e r v l e t,以及怎样将它们用于扩展 We b服务器的功能,同时我们也将使用最新的称为JavaServer Pages(J S P)的服务器端J a v a技术。J S P通过创建一个特殊的网页能够让我们把H T M L、J a v a代码及其他成份简单地组合在一起,该网页在第一次调用时能够由 We b服务器动态地编译到一个s e r v l e t里去。本章主要包括:概述We b
5、开发。讨论服务器端应用和客户端应用。介绍服务器端的J a v a技术。考察在服务器上使用J a v a的优点。1.1 We b结构在构造服务器端的J a v a应用之前,我们先来回顾一些基本的东西。对一些有 We b应用开发经验的读者可直接跳到下一节。对其他读者,我们将从在 We b浏览器上键入一个简单的U R L(统一资源定位符)会发生什么事情讲起。为了在浏览器中打开网页,你通常要键入一个 U R L或点击一个指向某个 U R L的现有连接。一旦你发出请求,并且 We b服务器收到后,We b服务器就找出网页并送回到浏览器(见图 1-1),浏览器随后显示出网页。网页中的每幅图同样也由一个 U
6、 R L所定位,浏览器用前面同样的方法向服务器请求每幅图像,直到把组成整个 H T M L网页的图都传回来。图1-1开发这种结构的应用有助于了解 We b浏览器和We b服务器的作用。你将会发现,对这些知识的了解将会有益于你成功开发出We b应用。1.1.1 We b浏览器We b浏览器可以看成一个通用的用户界面。无论你是做一些简单的浏览或是进行在线银行交易,We b浏览器的职责都是显示We b内容,向We b服务器发出请求,并处理该请求生成的结果。在过去几年里,浏览器市场发生了翻天覆地的变化。不管是微软还是网景,都为我们的客户端提供了强大的能力。微软的 I E和网景的C o m m u n
7、i c a t o r这两种主要的浏览器都逐渐成为完全可编程的文档容器,每一种都有自己的对象模型,允许脚本文件或对象对文档本身的元素进行操作。像VBs c r i p t或者J a v a S c r i p t这类脚本语言可用来执行客户端的数据确认或者提供文档中的某些交互特性。动态H T M L(D H T M L)是一种H T M L、层叠样式表单(Cascading Style Sheets,C S S)、文档对象模型和脚本语言的结合物。C S S是一种定位和格式化H T M L的较好方法。由于样式表里的每一属性对对象模型都是可见的,所以你可以用一些脚本来处理和重定位 H T M L元素
8、。D H T M L从整体上说给你的网页提供了更高级的交互性,同样它还为它们的显示增加了更多的控制。最新的浏览器必须具备的一个特性是支持可扩展标记语言(Extensible Markup Language,X M L)。X M L允许你定义自己的标记符(t a g)集来特征化数据,并用这些标记符来构造文档和2第第J a v a服务器高级编程下载请求响应:HTML代码Web浏览器本地文件系统Web服务器数据结构。X M L使得结构化的数据具有自我描述性,这就意味着数据可以方便地进行移植。更进一步,利用可扩充风格语言(Extensible Style Language,X S L)你可以选择你想看
9、的数据,甚至改变标记符名称并把 X M L标记符转换为H T M L。在哪里执行这些转换依赖于客户端浏览器对X M L的支持。在本书中,因为这样的浏览器是普遍存在的,所以我们将集中讨论 X M L在服务器上的转换。当文档显示时,We b浏览器能够在同样的环境中执行应用程序。对客户端 We b应用来说,最常见的两种选择就是微软的 A c t i v e X技术和Java applet。A c t i v e X组件从We b服务器下载,在Wi n d o w s注册表中注册,由其他脚本元素调用它时进行执行;一个 Java applet也是一种从We b服务器下载的小 J a v a程序,在浏览器
10、自己的 J a v a虚拟机中执行。不论是 A c t i v e X对象还是 J a v aa p p l e t,都能完全访问浏览器的文档对象模型并能在浏览器和它们自身之间交换数据。不管我们是怎样使用浏览器的,它总是扮演着一种“世界之窗”的角色,它是我们浏览 We b页面、在线交易甚至玩游戏的主要用户界面。1.1.2 We b服务器We b服务器是We b交互的核心。We b服务器是一个运行在服务器上的程序,它监听到来的请求并处理这些请求。一旦 We b服务器接收到一个请求便开始处理。根据请求的类型,We b服务器或者寻找一个网页,或者执行一个程序。无论哪种情况,它都会将某种类型的结果传回
11、浏览器,即使它无法处理请求也会返回错误提示。根据N e t c r a f t的We b服务器调查表(h t t p:/w w b服务器有Apache We b服务器和M i c r o s o f t的I I S(见表1-1)。Apache We b服务器作为自由软件得到了世界各地程序员的使用和修改。它的功能、灵活性、易用性以及多平台支持使它在过去几年里占了We b服务器市场的绝对优势。另一方面,微软的 I I S作为Wi n d o w s操作系统的一部分运行在 N T操作系统上,虽然 I I S有许许多多的优点,但它依赖于 Wi n d o w s操作系统无疑限制了它的发展。随着L i
12、n u x操作系统的普及,似乎 Apache We b服务器(与L i n u x捆绑在一起发布)会继续在竞争中占据优势。Netcraft We b服务器调查表(h t t p:/w w w.n e t c r a f t.c o m/s u r v e y)表1-1服务器1 9 9 9年7月百分比A p a c h e3 7 1 3 4 7 05 6.2 8M i c r o s o f t-I I S1 4 5 2 3 3 32 2.0 1N e t s c a p e-E n t e r p r i s e3 8 6 9 2 75.8 6C n G1 4 7 2 112.2 3R a p
13、 i d s i t e11 3 0 2 51.7 1We b S i t e P r o8 7 2 9 31.3 2S t r o n g h o l d7 9 5 8 01.2 1Z e u s7 9 2 0 61.2 0t h t t p d7 0 4 1 41.0 7We b S TA R6 3 3 4 70.9 6第1章第We b应用开发第第3下载We b服务器在我们开发的服务器端应用中起了非常重要的作用。Java servlet可以在任何We b服务器上运行。因为 s e r v l e t用一个单独的s e r v l e t引擎就能运行,We b服务器不必非得支持 s e r
14、v l e t才能使用它们。本书中我们使用了 Java We b开发包,但是 Apache JServ、J R u n或者Java We bS e r v e r都能适用于这些例子。1.2 n-层应用在讨论We b应用开发时,有必要介绍 n-层(n-t i e r)结构的概念。典型的客户/服务器属于2-层结构类型,整个应用都在客户端的 P C机上,而数据库则在公司的服务器上。虽然这种方法允许我们在企业范围内共享数据,但还存在许多缺点。在2-层结构的应用中,进程的装载全由 P C机来完成而功能更强大的服务器只是简单地作为应用与数据库之间的流量控制器。这样,不仅应用的执行效率受到 P C机资源限制
15、,而且网络流量也要增大。当整个应用都在 P C机上执行时,在把结果显示给用户时经常需要该应用提出多个数据请求,而多个数据库请求会造成网络拥塞。2-层结构的另一个问题是维护。应用的极小变化都会对整个客户端造成影响。经过一系列变化之后,便很难管理各个版本。一些用户认为不需要变化而继续采用原来的版本,而另一些用户坚持要立即升级,其结果是造成了两种不同的版本需要维护。为解决这些问题,软件开发商提出了3-层结构的概念。整个应用被划分成三个分离的逻辑层,每一层都有一套定义好的接口。第一层是表示层,一般情况下就是展现给用户的图形界面;中间层由应用逻辑组成,第三层包含应用所需的数据。中间层(应用逻辑层)基本上
16、是用户为了获取数据需要(通过表示层)调用的代码。表示层接收到数据后把它格式化并显示出来。这种应用逻辑与用户界面的分离极大地提高了应用设计的灵活性。我们可以在不改变应用逻辑的情况下采用不同的图形用户界面,只要应用逻辑层给表示层提供了一个明确定义的接口。第三层包含应用所需的数据。数据可以是任何类型的信息,既可以是像 O r a c l e或S y b a s e这类的企业级数据库,也可以是一个 X M L文档(根据X M L规范定义存储在文档中的数据)集,甚至可以是如L D A P服务器这类的目录服务。一个应用的数据并不局限于一个相关的数据库。这里存在许多应用能够访问的不同企业数据源。采用三层结构
17、以后,执行效率、网络拥塞和维护等问题都得到了解决。这种结构几乎满足了我们的所有要求,但不是没有缺点,它的不足在于重用性和可伸缩性。在一个组织内,我们会有多个部门,因而有很多相互之间没有任何联系的应用。在这种情况下我们引入 n-层结构。为了把一个3-层结构的系统转化为n-层结构,我们只需把第二层的单一应用扩展为多个应用对象即可(如图1-2)。这些应用对象必须有一个接口以使得它们能在一块工作,接口可以看成为一种契约,每个对象通过接口声明它所接收的参数以及返回的结果集,应用对象之间也通过它们的接口进行通信。采用n-层结构以后,公司内多个应用就可以采用一个统一的事务对象集了。通过创建整个公司可访问的单
18、一事务功能集,这种结构提高了事务实践的标准化。一旦某个事务规则发生了变4第第J a v a服务器高级编程下载化,则只需改变相应的事务对象,如果有必要再修改接口及其访问该接口的对象。这里着重指出当设计一个对象及其接口时,最好使接口尽可能通用化以避免以后过多的修改。因为对象与对象之间既然是通过接口而不是对象本身进行通信的,那么改变对象本身而不是接口就会相对简单快捷。图1-21.3 We b应用的体系结构一个We b应用典型地采用三层结构模型(如图 1-3所示)。第一层包括表示层,对于 We b应用来说,不仅包括We b浏览器而且还包括We b服务器,它们负责把数据格式化为可显示的格式。第二层是应用
19、层,通常包括一些脚本或程序。最后,第三层为第二层提供它所需的数据。一个典型的We b应用从用户处收集数据(第一层),向We b服务器发出请求,运行所请求的相应服务器程序(第二层和第三层),把需要在We b浏览器显示的数据打包,送回到浏览器进行显示(第一层)。第1章第We b应用开发第第5下载表示层逻辑HTML表单(浏览器)Java Applet(浏览器)能够显示数据的任何系统接口应用对象接口应用对象接口应用对象远端系统XML文档应用逻辑数据图1-31.3.1 收集数据一个We b应用的第一步通常(但不总是)涉及从用户处收集某种数据。传统的方法是用一个简单的H T M L表单,用户在指定字段键入
20、信息,然后点击发送按钮,并等待结果。这种方法今天仍然被广泛使用,除此之外,还有另一种方法。既然你已经开始阅读本书,我们假定你对 Java applet很熟悉。a p p l e t是在We b页面内运行的J a v a程序。Java applet是通过向We b服务器简单地打开一个套接字连接而作为服务器端的客户程序的。这种方法可以有助于把大部分数据的格式化和有效性检查工作从服务器端移到客户端。在多层结构中,我们没有必要把所有的工作量都从客户端移走,而是应该把代码放在最合适的地方。应用逻辑不应放在客户端,相应地,表示逻辑也不应放在服务器端。a p p l e t的主要问题就是仍然限制了大多数因特
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 服务器 高级 编程 作者

限制150内