JSP技术发展史-中文翻译

上传人:加Q294****549海量... 文档编号:172436 上传时间:2017-11-15 格式:DOC 页数:4 大小:30KB
返回 下载 相关 举报
JSP技术发展史-中文翻译_第1页
第1页 / 共4页
JSP技术发展史-中文翻译_第2页
第2页 / 共4页
JSP技术发展史-中文翻译_第3页
第3页 / 共4页
点击查看更多>>
资源描述
JSP 技术发展史Java Server Pages(JSP)是一种基于 web 的脚本编程技术,类似于网景公司的服务器端Java 脚本语言 server-side JavaScript(SSJS)和微软的 Active Server Pages(ASP)。JSP 比SSJS 和 ASP 具有更好的可扩展性,并且它不专属于任何一家厂商或某一特定的 Web 服务器。尽管 JSP 规范是由 Sun 公司制定的,但任何厂商都可以在自己的系统上实现 JSP。 在 Sun 正式发布 JSP(Java Server Pages)之后,这种新的 Web 应用开发技术很快引起了人们的关注。JSP 为创建高度动态的 Web 应用提供了一个独特的开发环境。按照 Sun 的说法,JSP 能够适应市场上包括 Apache WebServer、IIS4.0 在内的 85%的服务器产品。本文将介绍 JSP 相关的知识,以及 JavaBean 的相关内容,当然都是比较粗略的介绍其中的基本内容,或者说仅仅是一个 Guide,如果读者需要更详细的信息,请参考相应的 JSP的书籍。A. 概述JSP(Java Server Pages)是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准,其在动态网页的建设中有其强大而特别的功能。JSP 与 Microsoft 的ASP 技术非常相似。两者都提供在 HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。下面我们简单的对它进行介绍。JSP 页面最终会转换成 servler。因而,从根本上,JSP 页面能够执行的任何任务都可以用 servler 来完成。然而,这种底层的等同性并不意味着 servler 和 JSP 页面对于所有的情况都等同适用。问题不在于技术的能力,而是二者在便利性、生产率和可维护性上的不同。毕竟,在特定平台上能够用 Java 编程语言完成的事情,同样可以用汇编语言来完成,但是选择哪种语言依旧十分重要。和单独使用 servler 相比,JSP 提供下述好处:JSP 中 HTML 的编写与维护更为简单。JSP 中可以使用常规的 HTML:没有额外的反斜杠,没有额外的双引号,也没有暗含的 Java 语法。能够使用标准的网站开发工具。即使对那些对 JSP 一无所知的 HTML 工具,我们也可以使用,因为它们会忽略 JSP 标签(JSP tags)。可以对开发团队进行划分。Java 程序员可以致力于动态代码。 Web 开发人员可以将经理集中在表示层(presentation layer)上。对于大型的项目,这种划分极为重要。依据开发团队的大小,及项目的复杂程度,可以对静态 HTML 和动态内容进行弱分离(weaker separation)和强分离( stronger separation)。在此,这个讨论并不是让您停止使用 servlets,只使用 JSP。几乎所有的项目都会同时用到这两种技术。针对项目中的某些请求,您可能会在 MVC 构架下组合使用这两项技术。我们总是希望用适当的工具完成相对应的工作,仅仅是 servlet 并不能填满您的工具箱。B. JSP 的由来Sun 公司的 JSP 技术,使 Web 页面开发人员可以使用 HTML 或者 XML 标识来设计和格式化最终页面。使用 JSP 标识或者小脚本来生成页面上的动态内容( 内容是根据请求来变化的) 。Java Servlet 是 JSP 技术的基础,而且大型的 Web 应用程序的开发需要 Java Servlet 和JSP 配合才能完成,Servlet 这个名称源于 Applet,现在国内的翻译方式很多,本书为了避免误会,决定直接采用 Servlet 而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。Servlet 其实和传统的 CGI、ISAPI、NSAPI 等 Web 程序开发工具的作用是相同的,在使用Java Servlet 以后,用户不必再使用效率低下的 CGI 方式,也不必使用只能在某个固定 Web服务器平台运行的 API 方式来动态生成 Web 页面。许多 Web 服务器都支持 Servlet,即使不直接支持 Servlet 的 Web 服务器也可以通过附加的应用服务器和模块来支持 Servlet。得益于 Java 的跨平台的特性,Servlet 也是平台无关的,实际上,只要符合 Java Servlet 规范,Servlet 是完全与平台无关且是与 Web 服务器无关的。由于 Java Servlet 内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此 Java Servlet 效率非常高。但 Java Servlet 也不是没有缺点,和传统的 CGI、ISAPI、NSAPI 方式相同,Java Servlet 是利用输出 HTML 语句来实现动态网页的,如果用 Java Servlet 来开发整个网站,动态部分和静态页面的整合过程简直就是一场恶梦。为了解决 Java Servlet 的这种缺点,SUN 推出了 JSP。许多年前,Marty 受到邀请,参加一个有关软件技术的小型(20 个人) 研讨会.做在 Marty旁边的人是 James Gosling- Java 编程语言的发明者。隔几个位置,是来自华盛顿一家大型软件公司的高级经理。在讨论过程中,研讨会的主席提出了 Jini 的议题,这在当时是一项新的Java 技术 .主席向该经理询问他的想法.他继续说,他们会持续关注这项技术 ,如果这项技术变得流行起来,他们会遵循公司的“接受并扩充(embrace and extend)”的策略.此时, Gosling 随意地插话说“你的意思其实就是不接受且不扩充(disgrace and distend)。”在此, Gosling 的抱怨显示出,他感到这个公司会从其他公司那里拿走技术,用于他们自己的目的.但你猜这次怎么样?这次鞋子穿在了另一只脚上。Java 社团没有发明这一思想-将页面设计成由静态 HTML 和用特殊标签标记的动态代码混合组成.。ColdFusion 多年前就已经这样做了。甚至 ASP(来自于前述经理所在公司的一项产品)都在 JSP 出现之前推广了这种方式。实际上,JSP 不只采用了这种通用概念,它甚至使用许多和 ASP 相同的特殊标签。JSP 是建立在 Java servlets 模型之上的表达层技术,它使编写 HTML 变得更简单。像SSJS 一样,它也允许你将静态 HTML 内容与服务器端脚本混合起来生成动态输出。JSP把 Java 作为默认的脚本语言,然而,就像 ASP 可以使用其他语言( 如 JavaScript 和VBScript)一样,JSP 规范也允许使用其他语言。C. JSP 的特点按 照 脚 本 语 言 是 服 务 于 某 一 个 子 系 统 的 语 言 这 种 论 述 , JSP 应 当 被 看 作 是 一 种 脚 本 语言 。 然 而 , 作 为 一 种 脚 本 语 言 , JSP 又 显 得 过 于 强 大 了 , 在 JSP 中 几 乎 可 以 使 用 全 部 的Java 类 。作为一种基于文本的、以显示为中心的开发技术,JSP 提供了 Java Servlet 的所有好处,并且,当与一个 JavaBeans 类结合在一起时,提供了一种使内容和显示逻辑分开的简单方式。分开内容和显示逻辑的好处是,更新页面外观的人员不必懂得 Java 代码,而更新JavaBeans 类的人员也不必是设计网页的行家里手,就可以用带 JavaBeans 类的 JSP 页面来定义 Web 模板,以建立一个由具有相似的外观的页面组成的网站。 JavaBeans 类完成数据提供,这样在模板中就没有 Java 代码,这意味着这些模板可以由一个 HTML 编写人员来维护。当然,也可以利用 Java Servlet 来控制网站的逻辑,通过 Java Servlet 调用 JSP 文件的方式来将网站的逻辑和内容分离。一般来说,在实际的 JSP 引擎中,JSP 页面在执行时是编译式,而不是解释式的。解释式的动态网页开发工具如 ASP、PHP3 等由于速度等原因已经满足不了当前大型电子商务应用的需要了,传统的开发技术都在向编译执行的方式改变,如ASPASP+;PHP3PHP4。在 JSP 规范书中,并没有明确要求 JSP 中的程序代码部分(称为 Scriptlet)一定要用 Java来写。实际上,有一些 JSP 引擎就是采用的其他脚本语言,如 EMAC-Script、WebL 等,但实际上这几种脚本语言也是构建在 Java 上面,编译为 Servlet 来实现的。按照 JSP 规范书写,和 Java 没有任何关系的 Scriptlet 也是可以的,不过,由于 JSP 的强大功能主要在于能和 JavaBeans、Enterprise JavaBeans 一起工作,所以即使是 Scriptlet 部分不使用 Java,编译成的执行代码也应该是与 Java 相关的。D. JSP 的机制要理解 JSP 怎样联合以上各种所提到的技术的优点,来轻而易举地实现各种效果,用户必须首先了解“ 组件为中心的网页开发”和“ 页面为中心的网页开发 ”的区别。 SSJS 和 ASP 都是在几年前推出的,那时网络还很年轻,没有人知道除了把所有的商务、数据和表达逻辑统统堆进原始网页中之外还有什么更好的解决方法。这种以页面为中心的模型容易学习并且得到相当快速的发展。然而,随着时间的推移,人们认识到这种方法不适于构建大型的、可升级的 Web 应用程序。在脚本环境中书写的表达逻辑被锁在页面内,只有通过剪切和粘贴才能被重用。表达逻辑通常和商务及数据逻辑混在一起,这使得当程序员试图改变一个应用程序的外观而不想破坏与之紧密结合的商务逻辑时,应用程序的维护就像在蛋壳上走路一样困难。其实在企业中,可重用组件的应用早已经很成熟,没有人愿意为它们的应用程序重写那些逻辑。HTML 和图形设计师把它们的设计的实施工作交给了 Web 编写者,使他们不得不加倍工作 常常是手工编写,因为没有合适的工具可以把服务器端脚本与 HTML 内容结合起来。简而言之,随着 Web 应用程序的复杂性不断提升,以页面为中心的开发方式的局限性变得明显起来。 与 此 同 时 , 人 们 一 直 在 寻 找 建 立 Web 应 用 程 序 的 更 好 方 法 , 组 件 在 客 户 机 /服 务 器 领域 流 行 起 来 。 JavaBeans 和 ActiveX 被 “快 速 应 用 程 序 开 发 ”(RAD)工 具 发 行 商 推 广 给 Java和 Windows 应 用 程 序 开 发 者 用 来 快 速 开 发 复 杂 的 程 序 。 这 些 技 术 使 某 领 域 内 的 专 家 可 以为 本 领 域 内 的 垂 直 应 用 编 写 组 件 , 而 开 发 者 可 以 直 接 拿 来 使 用 而 不 必 掌 握 这 一 领 域 的 专 门技 术 。作为一种以组件为中心的开发平台,JSP 出现了。它以 JavaBeans 和 Enterprise JavaBeans(EJB)组件包含商务和数据逻辑的模型为基础,提供大量标签和一个脚本平台用来在 HTML 页中显示由 JavaBeans 产生或回送的内容。由于 JSP 的以组件为中心的性质,它可以被 Java 和非 Java 开发者同样使用。非 Java 开发者可以通过 JSP 的标签(Tags) 来使用高级 Java 开发者创建的 JavaBeans。Java 开发者不仅可以创建和使用 JavaBeans,还能在JSP 页中使用 Java 语言来更精密地控制基于底层 JavaBeans 的表达逻辑。 现在来看看 JSP 是如何处理 HTTP 请求的。在基本请求模型中,一个请求直接被送到JSP 页中。JSP 代码控制着进行逻辑处理时与 JavaBeans 组件的交互,并在动态生成的、混合了静态 HTML 代码的 HTML 页中显示结果。Beans 可以是 JavaBeans 或 EJB 组件。另外,更加复杂的请求模型可看作从被请求页呼叫其他 JSP 页或 Java Servlets。JSP 引擎实际上要把 JSP 标签、JSP 页中的 Java 代码甚至连同静态 HTML 内容都转换为大块的 Java 代码。这些代码块被 JSP 引擎组织到用户看不到的 Java Servlet 中去,然后Servlet 自动把它们编译成 Java 字节码。这样,当网站的访问者请求一个 JSP 页时,在它不知道的情况下,一个已经生成的、预编译过的 Servlet 实际上将完成所有的工作,非常隐蔽而又高效。因为 Servlet 是编译过的,所以网页中的 JSP 代码不需要在每次请求该页时被解释一遍。JSP 引擎只需在 Servlet 代码最后被修改后编译一次,然后这个编译过的 Servlet 就可以被执行了。由于是 JSP 引擎自动生成并编译 Servlet,不用程序员动手编译代码,所以JSP 能带给你高效的性能和快速开发所需的灵活性。和传统的 CGI 相比较,JSP 有相当的优势。首先,在速度上,传统的 CGI 程序需要使用系统的标准输入输出设备来实现动态网页的生成,而 JSP 是直接和服务器相关联的。而且对于 CGI 来说,每一个访问就需要新增加一个进程来处理,进程不断地建立和销毁对于作为Web 服务器的计算机将是不小的负担。其次,JSP 是专门为 Web 开发而设计的,其目的是为了建立基于 Web 的应用程序,包含了一整套的规范和工具。使用 JSP 技术可以很方便地将一大堆 JSP 页面组合成为一个 Web 应用程序。
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸设计 > 外文翻译


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!