JavaWind >>
Java document >>
JavaServer Pages (jsp)技术简介
|
JavaServer Pages (jsp)技术简介 |
|
JavaServer PagesTM (jsp(SUN企业级应用的首选))技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。jsp(SUN企业级应用的首选)技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。 这里提供了jsp(SUN企业级应用的首选)技术的全面概述,描述了其开发背景以及这项技术的总体目标。同时,在一个简单示例中,还描述了一个基于JavaTM技术的页面的关键组成部分。 开发基于Web的应用程序:背景 在万维网短暂的历史中,它已经从一个大部分显示静态信息的网络演化到对股票进行交易和进行购书操作的一个基础设施。在各种各样的应用程序中,对于可能使用的基于Web的客户端,看上去没有任何限制。 基于浏览器客户端的应用程序比传统的基于客户机/服务器的应用程序有几个好处。这些好处包括几乎没有限制的客户端访问和极其简化的应用程序部署和管理(要更新一个应用程序,管理人员只需要更改一个基于服务器的程序,而不是成千上万的安装在客户端的应用程序)。这样,软件工业正迅速地向建造基于浏览器客户端的多层次应用程序迈进。 这些快速增长的精巧的基于Web的应用程序要求开发技术上的改进。静态HTML对于显示相对静态的内容是不错的选择;新的挑战在于创建交互的基于Web的应用程序,在这些程序中,页面的内容是基于用户的请求或者系统的状态,而不是预先定义的文字。 某些Web服务器供应商已经尝试通过为他们的服务器提供“插件”和API来简化Web应用程序的开发。这些解决方案是与特定的Web服务器相关的,不能解决跨多个供应商的解决方案的问题。例如,微软的Active Server PagesTM(ASP) 技术使得在Web页面上创建动态内容更加容易,但是也只能工作在微软的IIS和Personal Web Server上。 还存在其他的解决方案,但是都不能使一个普通的页面设计者能够轻易地掌握。例如,象Java Servlets这样的技术就可以使得用Java语言编写交互的应用程序的服务器端的代码变得容易。一个Java Servlets就是一个基于Java技术的运行在服务器端的程序(与Applet不同,后者运行在浏览器端)。开发人员能够编写出这样的Servlet,以接收来自Web浏览器的HTTP请求,动态地生成响应(可能要查询数据库来完成这项请求),然后发送包含HTML或xml(标准化越来越近了)文档的响应到浏览器。 采用这种方法,整个网页必须都在Java Servlet中制作。如果开发人员或者Web管理人员想要调整页面显示,就不得不编辑并重新编译该Java Servlet,即使在逻辑上已经能够运行了。采用这种方法,生成带有动态内容的页面仍然需要应用程序的开发技巧。 很显然,目前所需要的是一个业界范围内的创建动态内容页面的解决方案。这个方案将解决当前方案所受到的限制,即: 能够在任何Web或应用程序服务器上运行 JavaServer Pages (jsp(SUN企业级应用的首选))技术就是被设计用来满足这样的要求的。jsp(SUN企业级应用的首选)规范是Web服务器、应用服务器、交易系统、以及开发工具供应商间广泛合作的结果。太阳微系统公司(Sun Microsystems Inc.)开发出这个规范来整合和平衡已经存在的对Java编程环境(例如,Java Servlet和JavaBeansTM)进行支持的技术和工具。其结果是产生了一种新的、开发基于Web应用程序的方法,给予使用基于组件应用逻辑的页面设计者以强大的功能。 Web应用开发的JavaServer Pages技术方法 在开发jsp(SUN企业级应用的首选)规范的过程中,太阳微系统公司(Sun Microsystems Inc.)与许许多多主要的Web服务器、应用服务器和开发工具供应商,以及各种各样富有经验的开发团体进行合作。其结果是找到了一种为应用和页面开发人员平衡了可移植性和易用性的开发方法。 jsp(SUN企业级应用的首选)技术在多个方面加速了动态Web页面的开发: 将内容的生成和显示进行分离 使用jsp(SUN企业级应用的首选)技术,Web页面开发人员可以使用HTML或者xml(标准化越来越近了)标识来设计和格式化最终页面。使用jsp(SUN企业级应用的首选)标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用jsp(SUN企业级应用的首选)页面,而不影响内容的生成。 强调可重用的组件 绝大多数jsp(SUN企业级应用的首选)页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。 采用标识简化页面开发 Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与jsp(SUN企业级应用的首选)相关的xml(标准化越来越近了)标识中进行动态内容生成所需要的。标准的jsp(SUN企业级应用的首选)标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。 jsp(SUN企业级应用的首选)技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,jsp(SUN企业级应用的首选)技术能够支持高度复杂的基于Web的应用。 jsp(SUN企业级应用的首选)页面看上去象什么? jsp(SUN企业级应用的首选)页面看上去象标准的HTML和xml(标准化越来越近了)页面,并附带有jsp(SUN企业级应用的首选)引擎能够处理和抽取的额外元件。通常,jsp(SUN企业级应用的首选)元件创建插入最终页面的文本。 使用示例是描述jsp(SUN企业级应用的首选)技术的最好方法。下面的jsp(SUN企业级应用的首选)页面非常简单;它打印带年、当月的天,并且根据时间使用"Good Morning"和"Good Afternoon"对您表示欢迎。 该页面结合了普通的HTML和大量jsp(SUN企业级应用的首选)元件组成。 对时钟JavaBeans组件的调用 jsp(SUN企业级应用的首选)表达式和脚本 xhtml代码
这个页面包含下面这些组件: 一个jsp(SUN企业级应用的首选)指示将信息传送到jsp(SUN企业级应用的首选)引擎。在这个示例中,第一行指出从该页面即将访问的一些Java编程语言的扩展的位置。指示被设置在<%@和%>标记中。 jsp(SUN企业级应用的首选)指示 jsp(SUN企业级应用的首选)页面使用jsp(SUN企业级应用的首选)指示将指令传递到jsp(SUN企业级应用的首选)引擎。这其中包括: jsp(SUN企业级应用的首选)页面指示传递页面相关的信息,例如缓冲区和线程信息或者出错处理。 jsp(SUN企业级应用的首选)标识 绝大多数jsp(SUN企业级应用的首选)处理将通过与jsp(SUN企业级应用的首选)相关的基于xml(标准化越来越近了)的标识完成。jsp(SUN企业级应用的首选) 1.0中包含大量标准标识,这些标识作为核心标识包括: jsp(SUN企业级应用的首选):useBean 这个标识声明对一个JavaBeans组件实例的使用。如果该组件的实例不存在,JavaBeans组件将实例化和注册这个标识。 1.1版本将包含更多的标准标识。 标识的好处在于它们易于在应用程序间使用和共享。基于标识的语法的真正威力来自于客户标识库的开发,使得工具供应商或其他人员能够为特定的要求创建和分派标识。 脚本元件 jsp(SUN企业级应用的首选)页面可以在页面中包含小的脚本,称之为小脚本(scriptlets)。小脚本是一个代码片段,在请求的处理过程中被执行。小脚本可以和页面中的静态元件组合(正如上面的例子一样)起来创建动态生成的页面。 脚本在<%和%>标志中被描述。在这对标志中的所有东西都会被脚本描述语言引擎执行,在我们的例子中是主机上的Java虚拟机。 jsp(SUN企业级应用的首选)规范支持所有常用的脚本元件,包括表达式和声明。 jsp(SUN企业级应用的首选)页面的应用模型 jsp(SUN企业级应用的首选)页面由jsp(SUN企业级应用的首选)引擎执行,引擎安装在Web服务器或者使用jsp(SUN企业级应用的首选)的应用服务器上。jsp(SUN企业级应用的首选)引擎接受客户端对jsp(SUN企业级应用的首选)页面的请求,并且生成jsp(SUN企业级应用的首选)页面给客户端的响应。 jsp(SUN企业级应用的首选)页面通常被编译成为Java Servlet。后者是一个标准的Java扩展,在www.java.sun.com站点有更详细的描述。页面开发人员能够访问全部的Java应用环境,以利用Java技术的扩展性和可移植性。 当jsp(SUN企业级应用的首选)页面第一次被调用时,如果它还不存在,就会被编译成为一个Java Servlet类,并且存储在服务器的内存中。这使得在接下来的对该页面的调用有非常快的响应。(这避免了CGI-BIN为每个HTTP请求生成一个新的进程的问题,或是服务器端引用所引起的运行时语法分析。) jsp(SUN企业级应用的首选)页面可以包含在多种不同的应用体系结构或者模型中。jsp(SUN企业级应用的首选)页面可以用于由不同协议、组件和格式所组成的联合体中。下面的小节描述了一些可能发生的情况。 一个简单应用 在一个简单实现中,浏览器直接调用jsp(SUN企业级应用的首选)页面,jsp(SUN企业级应用的首选)页面自己生成被请求的内容(可能会调用JDBC直接从数据库中获取信息)。jsp(SUN企业级应用的首选)页面能够调用JDBC或者Java BlendTM组件来生成结果,并且创建标准的HTML,作为结果发送回浏览器。 这个模型基本上用jsp(SUN企业级应用的首选)页面(编译成为Java Servlet)代替了CGI-BIN概念。这个方法拥有下列优点: 简单而快速地编程 使用Java Servlet的一个灵活的应用 在另一种可能的配置中,基于Web的客户机可能直接对Java Servlet进行请求,Servlet生成动态内容,将结果捆绑到一个结果对象中并且调用jsp(SUN企业级应用的首选)页面。jsp(SUN企业级应用的首选)页面从该对象中访问动态内容,并且将结果(例如HTML)发送回浏览器。 这个方法创建了更多的可以为应用程序间共享的可重用的组件,并且可以作为更大的应用的一部分完成。但是,在处理如数据库一样的企业资源的连接时,还是存在扩展性问题。 采用企业级JavaBean技术的可扩展处理 jsp(SUN企业级应用的首选)页面也可以作为企业级JavaBean(EJB)体系结构中的一个中间层。在这种情况下,jsp(SUN企业级应用的首选)页面和后端资源通过EJB组件进行交互。 EJB组件管理对后端资源的访问,从而为众多的并发使用者提供可扩展的性能。对于电子商务或者其他应用,EJB管理交易和潜在的安全性。这将简化jsp(SUN企业级应用的首选)页面。这个模型将为Java 2企业版(J2EE)平台所支持。 jsp(SUN企业级应用的首选)页面与xml(标准化越来越近了)技术的集成 jsp(SUN企业级应用的首选)页面可以用于生成xml(标准化越来越近了)和HTML页面。 对于简单的xml(标准化越来越近了)生成,开发人员可以包含xml(标准化越来越近了)标识和jsp(SUN企业级应用的首选)页面的静态模板部分。对于动态xml(标准化越来越近了)生成,使用基于服务器的对象和生成xml(标准化越来越近了)输出的客户化标识。 jsp(SUN企业级应用的首选)页面与xml(标准化越来越近了)工具不是不兼容的。尽管Sun在设计jsp(SUN企业级应用的首选)规范时使得jsp(SUN企业级应用的首选)页面即使手工操作对于创作者而言也是很容易的,jsp(SUN企业级应用的首选)规范同时也提供了一个机制以便于创建任意jsp(SUN企业级应用的首选)页面的一个xml(标准化越来越近了)版本。通过这种方法,xml(标准化越来越近了)工具能够创作和操作jsp(SUN企业级应用的首选)页面。 通过将jsp(SUN企业级应用的首选)标识和元件转换为与xml(标准化越来越近了)兼容的对等物,可以使用基于xml(标准化越来越近了)的工具来操作jsp(SUN企业级应用的首选)页面。例如,脚本可以被包含在<%和%>之中,或者基于xml(标准化越来越近了)标志的<jsp(SUN企业级应用的首选):scriptlet>和</jsp(SUN企业级应用的首选):scriptlet>中。事实上,经过下面这样简单的几步将jsp(SUN企业级应用的首选)页面转换为xml(标准化越来越近了)页面是可能的,这些步骤包括: 增加一个jsp(SUN企业级应用的首选)根元件 jsp(SUN企业级应用的首选)技术的未来 jsp(SUN企业级应用的首选)技术被设计为一个开放的,可扩展的建立动态Web页面的标准。开发人员可以使用jsp(SUN企业级应用的首选)页面来创建可移植的Web应用,在不同的Web和应用服务器上为不同的场合所运行,而不论采用什么适合本身场合和需要的创建工具。 通过与业界领袖的合作,Sun保证jsp(SUN企业级应用的首选)规范是开放的和可移植的。可以使用任何客户机和服务器平台,在任何地方编写和部署它们。将来,工具供应商和其他厂商将通过为专门的功能提供客户化的标识库而扩展平台的功能。 jsp(SUN企业级应用的首选)规范的1.0版本是通向动态Web页面生成的一个开放的工业标准方法的第一步。1.0版本通过一个核心标识集、隐含对象以及开始创建动态Web页面所需的基本功能构成了该方法的基础。已经有几个Web服务器,应用服务器和开发工具供应商正在为他们的产品添加jsp(SUN企业级应用的首选)1.0的支持,这样在业界已经拥有了最初的、立即的支持。 在1999晚些时候将完成的1.1版本,通过更多的xml(标准化越来越近了)支持、客户化标识、以及与J2EE的集成而扩展这个版本。并且供应商们可能会有选择地扩展和扩充在jsp(SUN企业级应用的首选)规范中基本的、必需的功能。jsp(SUN企业级应用的首选)引擎能够强有力地支持多种脚本语言和对象模型。在业界扩充和使用jsp(SUN企业级应用的首选)技术能力的同时,也向Sun承诺将保证jsp(SUN企业级应用的首选)技术保持平台和服务器间固有的可移植性。 |
|