设置一个Servlet和JSP环境外文翻译资料

 2023-06-27 09:08:55

英语原文共 13 页,剩余内容已隐藏,支付完成后下载完整资料


第一章

设置一个Servlet和JSP环境

在开始使用Servlet和JavaServer页面进行开发之前,您需要理解两个非常重要的事情:为什么使用这项技术是可取的,以及使用这项技术需要什么?本章回答了这两个问题,并在这个过程中提供了对整本书的介绍。我们首先介绍了传统的Web开发。讨论描述了为什么最初创建servlet和JSP,以及为什么这些技术目前很流行。讨论的结尾涉及到运行这本书的示例所需的软件。

您最好按照本章中的说明来操作,以确保编码环境与本书中所有代码示例都 经过测试的编码环境最匹配。如果您使用的是已经建立的Servlet/JSP环 境,请确保它对JavaServer页面2.0、Servlet2.4和Java2标准版1.4都能 支持。本书中的例子需要这些技术,并且所涵盖的一些特性不是向后兼容的。

网络发展简史

Servlet和JSP环境不再需要基本的Java支持。任何运行JSP或Servlet的计算机还需要一个容器。容器是一个负责加载、执行和卸载servlet和JSP的软件。其原因主要与服务器端Web开发的历史有关。快速概述最早也是最著名的服务器端动态内容解决方案之一CGI,以及CGI和Servlet之间的差异,对于理解为什么需要JSP/Servlet容器非常有帮助。确切的 由容器管理的生命周期事件将在第2章中讨论。

CGI

公共网关接口或CGI通常被称为创建动态服务器端内容的第一个实用技术之一。使用CGI,服务器将客户端的请求传递给外部程序。此程序执行、创建一些内容,并向客户机发送响应。在首次开发时,该功能是对静态内容的一个巨大改进,并极大地扩展了对Web开发人员可用的功能。不用说,CGI迅速受欢迎,并成为创建动态网页的标准方法。然而,CGI并不完美。

CGI最初被设计为Web服务器与外部应用程序通信的标准方法。值得注 意的一个有趣的一点是,可用于生成动态网页的功能实际上是这个设计目标的一个副作用。这在很大程度上解释了为什么CGI可能有最糟糕的生命周期。按照设计,每个对CGI资源的请求都会在服务器上创建一个新的进程,并通过标准输入和环境变量将信息传递给该进程。图1-1提供了这个单相CGI生命周期的示意图。

虽然它确实可以工作,但CGI的生命周期对服务器资源非常费力,并且极大地限制了服务器可以支持的并发CGI用户的数量。如果您不熟悉操作系统和流程,那么一个很好的类比应该是在用户每次发出请求时都要启动和关闭Web服务器。正如您可能知道,这几乎永远都不是一个真正的Web服务器的情况。启动和停止整个过程需要大量的时间。更好的解决方案是启动服务器进程,处理所有请求,然后当不再需要Web服务器时,请关闭它。启动和停止Web服务器就像CGI的单阶段生命周期,这是一个非常明显的问题。CGI不能很好地扩展,经常会使Web服务器停止。

图1-1 CGI生命周期

即使按照今天的标准来看性能很差,CGI也是服务器端编程发展中的革命性一步。开发人员有一种跨平台的方法,使用他们喜欢的脚本和编程语言创建动态内容。这种流行引发了第二代CGI实现,试图解决原始CGI的性能问题,即FastCGI。虽然单个阶段的生命周期仍然存在,但CGI实现通过为请求汇集资源而提高了效率。这就消除了为每个请求创建和销毁进程的需要,并使CGI成为一个更实用的解决方案。图1-2显示了改进后的CGI实现。不是为每一个请求开一个进程,而是保留一个连续处理请求的进程池。如果一个进程完成了对一个请求的处理,那么它将被保留并用于管理下一个传入的请求,而不是为每个请求启动一个新的进程。

同样的池化设计仍然可以在今天的许多CGI实现中找到。使用池化技术,CGI是使用Web服务器创建动态内容的可行解决方案,但它仍然并非没有问题。最值得注意的是,很难在不同的请求之间共享资源,如公共日志记录实用程序或服务器端对象。解决这些问题涉及使用特定CGI的创造性修复,并为个别项目定制。对于严肃的Web应用程序,需要一个更好的解决方案,最好是一个解决CGI问题的解决方案。

图1-2汇集的CGI资源

Java服务

在Java世界中,Servlet被设计用来解决CGI的问题,并为Web开发人员创建健壮的服务器端环境。与CGI类似,Servlet允许一个程序处理一个请求,并让相同的程序产生一个动态响应。Servlet还定义了一个有效的生命周期,其中包括使用单个进程来管理所有请求的可能性。这消除了CGI的多进程开销,并允许主进程在多个Servlet和多个请求之间共享资源。图1-3给出了一个支持Servlet的Web服务器的示意图。

Servlet图类似于第二代CGI,但是请注意,所有的Servlet都是从一个主进程或一个父程序中运行的。这是实现Servlet效率的关键之一,我们稍后将看到,JSP也有同样的效率。通过高效的设计和Java的跨平台支持,Servlet解决了CGI的常见的问题,并迅速成为动态服务器端功能的流行解决方案。servlet仍然很流行,现在也被用作其他技术的基础,如JSP。目前,Servlet和JSP联合组成了Java2企业版J2EE的官方“Web层”。

容器

Servlet的性能可以直接归因于Servlet容器。一个Servlet容器,也被称为“容器”或“JSP容器”,是管理Servlet生命周期的软件。

图1-3 ServletWeb服务器示意图

它管理着Servlet的生命周期。容器软件负责与Web服务器交互,以处理请求并将其传递给Servlet以进行响应。容器的官方定义完全由JSP和Servlet规范来描述。与大多数专有技术不同,JSP和Servlet规范只为容器必须实现的功能定义了一个标准。Servlet和JSP容器的实现不是一个而是很多个,它们来自不同的供应商,价格、性能和功能各不相同。这为Servlet和JSP开发人员提供了许多开发软件的选项。

考虑到容器,前面的servlet图最好使用容器来表示在Web服务器上创建、管理和销毁运行servlet的线程的单个进程。在Web服务器上运行Servlet的线程的单个进程。请注意,这可能是一个单独的物理过程,也可能不是。图1-4显示了一个使用Servlet容器的Web服务器。

图1-3中只描述了Servlet,但在接下来的两章中,将详细介绍 Servlet和JSP的生命周期,而且很明显,容器与Servlet管理JSP的方式完全相同。现在,可以安全地假设Servlet和JSP是相同的技术。图1-4没有显示的是,在某些情况下,容器也充当Web服务器,而不是指向现有服务器的模块。在这些情况下,图1-3中的Web服务器和容器本质上是相同的。

鉴于您现在对容器有了更多地了解,应该很清楚,必须安装一个容器来运行Servlet和JSP。这本书中的例子需要一个Servlet2.4和JSP2.0兼容的容器。如果你没有,不要担心。本章后面将提供一个演练 ,解释如何获取参考实现JSP2.0和Servlet2.4容器。如果以前安装了容器,请确保它支持正确版本的Servlet和JSP;旧的容器不支持JSP2的某些功能。具体在本书中,所有示例都是使用参考实现容器Tomcat创建和测试的。Tomcat的第5版是Servlets 2.4和JSP 2.0的参考实现.如果您需要安装一个兼容的容器,现在请花点时间下载并安装Tomcat5。

图1- 4容器进程

获取Java支持

Servlet和JavaServer页面,也意味着所有的容器,都依赖于Java编程语言。在Servlet的例子中,代码只不过是一个实现适当接口的Java类。编译Servlet与编译Java类完全相同。JSP稍微抽象一些。JSP的编译和使用与Servlet完全一样,但是这个过程几乎总是自动完成的,而JSP开发人员没有注意到。在编写JSP时,开发人员会使用标记和代码的组合来创建一个通常类似于HTML或XML文档的页面。此页面由Servlet容器编译成一个类文件并自动加载。

官方的Java平台是由Sun微系统公司设计、拥有和管理。与大多数其他编程语言不同,Java不是为编译特定于平台的指令而设计的。相反,Java被编译为字节代码,由运行Java程序的计算机解释。这意味着在一台计算机上开发和编译的Java程序将在任何其他支持Java的计算机上运行;Servlet和JSP可以在大多数任何操作系统上进行编译和运行。这包括了大多数所有的Windows、Linux和Macintosh操作系统。本书假设您正在其中一个系统上安装JSP环境,并在每个系统上提供了安装说明。

下载Java2标准版1.4

本书中的代码示例需要Java 2 Standard Edition 1.4(J2SE 1.4)支持。Sun微系统提供了一个免费的Java1.4在线参考实现。除非你使用的是麦金塔OSX,否则请转到http://java.sun.com/并下载最新的Java发行版。麦金塔OSX有对Java2的专有支持。如果您运行的是OSX,则不需要额外的下载。

Java只需要在您的计算机上安装一次,并且只针对您正在使用的特定操作系统。您无需阅读所有关于在特色平台上安装的所有章节。它们的存在只是为了给读者提供一个关于他们的特定操作系统的指南。对Java2标准版1.4的全面介绍超出了本书的范围;然而,本书稍后使用J2SDK并不需要全面了解Sun提供的工具。如果您正在寻找有关此信息的详细指南,请参阅Java思维,第3版,布鲁斯·埃克尔著。

在Microsoft Windows上安装J2SE 1.4

微软的Windows有很多种类,早期版本在台式计算机和设计为服务器的计算机之间有很大的区别。实际上,运行Windows 95或Windows 98的台式计算机对于安装Servlet和JSP的环境来说,这不是一个好的选择,但一台Windows 95或Windows 98电脑就足以尝试这本书的示例。Microsoft Windows的Java发行版将在除Windows 3之外的所有操作系统版本上运行。在这本书中,重点是在Windows NT、2000或XP计算机上安装Java。然而,我们意识到许多读者在家里都有一台运行Windows 95或Windows 98的台式电脑。如果是这种情况,我们会尽力帮助你。

下载J2SE 1.4后,必须将其安装到您的系统上。这个下载应该是一个可执行文件,可以通过双击它来运行。双击此文件并按照安装向导完成所有步骤。在哪里安装J2SE 1.4并不重要,但值得一提的是它的位置,因为这是本章后面部分所需要的。

Java 2标准开发工具包1.4的安装现已完成。跳到标题为“Tomcat”的部分。

在Linux发行版上安装J2SE1.4

Linux比Windows有更多的多样性,并在更多的硬件架构上运行。我们没有尝试提供针对所有Linux发行版的演练式安装指南,但本指南应该适用于绝大多数发行版。具体来说,本节介绍了安装J2SE1.4的步骤在红帽Linux7.3上。它将非常类似于在针对x86处理器的任何Linux发行版上的安装,因为不使用RPM。如果您下载了RPM或对于您的发行版,请随意安装它,记下安装目录,并跳过到本章的下一节。

在本节的介绍中,您应该下载了J2SE1.4Linux二进制安装文件。该文件应该被命名为类似于j2sdk-1_4_0_01-linux-i586.bin的文件,并具有最新版本的适当版本号。任何1.4个版本应该就足够了;本指南使用了版本1.4.0_01.从命令提示符中,确保该文件具有可执行权限并执行该程序。这些是使文件可执行,然后执行它的命令;假设下载在/root/download目录中,并且您有适当的权限。

chmod x/root/download/j2sdk-1_4_0_01-linux-i586.bin

/root/download/j2sdk-1_4_0_01-linux-i586.bin

当文件执行时,将显示Sun的许可条款,您可以选择同意继续安装。图1-5显示了许可条款的示例显示。

如果您同意这些条款,文件将会自动被解压缩到由安装程序创建的 j2sdk1.4.0目录中。您可以将此目录移动到任何您喜欢的位置,但请记住J2SDK1.4所在的位置,是因为以后在设置环境变量时将需要它。标准Java开发工具包的安装现在已经完成。

图1-5Sun的J2SDK1.4许可条款

对于非x86用户:自己编译Java

您可能是不喜欢非优化代码的高级用户,也可能是你没有x86微处理器。这两种情况在很大程度上都超出了本书的范围,但是一个简单的提示应该会让你在学习上取得进步。“官方”Java Linux代码在Blackdown Linux上维护,http://www.blackdown.org. 如果需要源代码来优化Java发行版或为不同的体系结构编译它,请访问Blackdown Linux。

Tomcat

Tomcat是Servlet和JSP的参考实现,它是开源的Apache雅加达项目的一部分,可以免费下载http://ja

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[603273],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。