人员能够使用熟悉的语法和工具很容易地访问这些信息。基于java的小脚本提供了一种灵活的方式以执行其他功能,而不要求扩展的脚本语言。页面作为整体是可读和可理解的,这就使得查找或者预防问题以及
共享工作更加容易。
这些组件中的一部分在下面有更详细的描述。
jsp指示
jsp页面使用jsp指示将指令传递到jsp引擎。这其中包括:
jsp页面指示传递页面相关的信息,例如缓冲区和线程信息或者出错处理。
语言指示指定脚本语言,以及所有的扩展。
包含指示(在上面例子中有显示)可以被用来在页面中包含一个外部的文档。一个好的例子是著作权文档或者公司信息文档??在一个集中地点保存该文档并且在页面中包含比在各个jsp页面中更新要容易些。当然,被包含的文件也可能是另一个jsp文件。
标识库指示指出页面可以调用的一个客户标识库。
jsp标识
绝大多数jsp处理将通过与jsp相关的基于xml的标识完成。jsp 1.0中包含大量标准标识,这些标识作为核心标识包括:
jsp:usebean 这个标识声明对一个javabeans组件实例的使用。如果该组件的实例不存在,javabeans组件将实例化和注册这个标识。
jsp:setproperty 这个标识在组件的实例中设置一个属性的值。
jsp:getproperty 这个标识获取一个组件的实例的属性值,将其转化为字符串,并且将它放入隐含对象"out"中。
jsp:include
jsp:forward
1.1版本将包含更多的标准标识。
标识的好处在于它们易于在应用程序间使用和共享。基于标识的语法的真正威力来自于客户标识库的开发,使得工具供应商或其他人员能够为特定的要求创建和分派标识。
脚本元件
jsp页面可以在页面中包含小的脚本,称之为小脚本(scriptlets)。小脚本是一个代码片段,在请求的处理过程中被执行。小脚本可以和页面中的静态元件组合(正如上面的例子一样)起来创建动态生成的页面。
脚本在<%和%>标志中被描述。在这对标志中的所有东西都会被脚本描述语言引擎执行,在我们的例子中是主机上的java虚拟机。
jsp规范支持所有常用的脚本元件,包括表达式和声明。
jsp页面的应用模型
jsp页面由jsp引擎执行,引擎安装在web服务器或者使用jsp的应用服务器上。jsp引擎接受客户端对jsp页面的请求,并且生成jsp页面给客户端的响应。
jsp页面通常被编译成为java servlet。后者是一个标准的java扩展,在www.java.sun.com站点有更详细的描述。页面开发人员能够访问全部的java应用环境,以利用java技术的扩展性和可移植性。
当jsp页面第一次被调用时,如果它还不存在,就会被编译成为一个java servlet类,并且存储在服务器的内存中。这使得在接下来的对该页面的调用有非常快的响应。(这避免了cgi-bin为每个http请求生成一个新的进程的问题,或是服务器端引用所引起的运行时语法分析。)
jsp页面可以包含在多种不同的应用体系结构或者模型中。jsp页面可以用于由不同协议、组件和格式所组成的联合体中。下面的小节描述了一些可能发生的情况。
一个简单应用
在一个简单实现中,浏览器直接调用jsp页面,jsp页面自己生成被请求的内容(可能会调用jdbc直接从数据库中获取信息)。jsp页面能够调用jdbc或者java blendtm组件来生成结果,并且创建标准的html,作为结果发送回浏览器。
这个模型基本上用jsp页面(编译成为java servlet)代替了cgi-bin概念。这个方法拥有下列优点:
简单而快速地编程
页面作者可以很容易地根据请求和资源状态生成动态内容
这个结构在许多应用上工作良好,但不能扩展到大量的基于web的并发客户访问稀少的企业资源,因为每个客户必须建立或者共享一个到可用内容资源的连接。例如,如果jsp页面访问数据库,可能生成许多到数据库的连接,这将影响到数据库的性能。
使用java servlet的一个灵活的应用
在另一种可能的配置中,基于web的客户机可能直接对java servlet进行请求,servlet生成动态内容,将结果捆绑到一个结果对象中并且调用jsp页面。jsp页面从该对象中访问动态内容,并且将结果(例如html)发送回浏览器。
这个方法创建了更多的可以为应用程序间共享的可重用的组件,并且可以作为更大的应用的一部分完成。但是,在处理如数据库一样的企业资源的连接时,还是存在扩展性问题。
采用企业级javabean技术的可扩展处理
jsp页面也可以作为企业级javabean(ejb)体系结构中的一个中间层。在这种情况下,jsp页面和后端资源通过ejb组件进行交互。
ejb组件管理对后端资源的访问,从而为众多的并发使用者提供可扩展的性能。对于电子商务或者其他应用,ejb管理交易和潜在的安全性。这将简化jsp页面。这个模型将为java 2企业版(j2ee)平台所支持。
jsp页面与xml技术的集成
jsp页面可以用于生成xml和html页面。
对于简单的xml生成,开发人员可以包含xml标识和jsp页面的静态模板部分。对于动态xml生成,使用基于服务器的对象和生成xml输出的客户化标识。
jsp页面与xml工具不是不兼容的。尽管sun在设计jsp规范时使得jsp页面即使手工操作对于创作者而言也是很容易的,jsp规范同时也提供了一个机制以便于创建任意jsp页面的一个xml版本。通过这种方法,xml工具能够创作和操作jsp页面。
通过将jsp标识和元件转换为与xml兼容的对等物,可以使用基于xml的工具来操作jsp页面。例如,脚本可以被包含在<%和%>之中,或者基于xml标志的<jsp:scriptlet>和</jsp:scriptlet>中。事实上,经过下面这样简单的几步将jsp页面转换为xml页面是可能的,这些步骤包括:
增加一个jsp根元件
将元件和指示转换为xml兼容的对等物
为页面上其他的元件(通常非jsp)创建cdata元件
通过这个与xml兼容的方法,创建html页面的设计者仍然拥有一个快速创建动态web页面的易用环境,同时,基于xml的工具和服务可以与jsp页面集成并且和jsp兼容的服务器一起工作。
jsp技术的未来
jsp技术被设计为一个开放的,可扩展的建立动态web页面的标准。开发人员可以使用jsp页面来创建可移植的web应用,在不同的web和应用服务器上为不同的场合所运行,而不论采用什么适合本身场合和需要的创建工具。
通过与业界领袖的合作,sun保证jsp规范是开放的和可移植的。可以使用任何客户机和服务器平台,在任何地方编写和部署它们。将来,工具供应商和其他厂商将通过为专门的功能提供客户化的标识库而扩展平台的功能。
jsp规范的1.0版本是通向动态web页面生成的一个开放的工业标准方法的第一步。1.0版本通过一个核心标识集、隐含对象以及开始创建动态web页面所需的基本功能构成了该方法的基础。已经有几个web服务器,应用服务器和开发工具供应商正在为他们的产品添加jsp1.0的支持,这样在业界已经拥有了最初的、立即的支持。
在1999晚些时候将完成的1.1版本,通过更多的xml支持、客户化标识、以及与j2ee的集成而扩展这个版本。并且供应商们可能会有选择地扩展和扩充在jsp规范中基本的、必需的功能。jsp引擎能够强有力地支持多种脚本语言和对象模型。在业界扩充和使用jsp技术能力的同时,也向sun承诺将保证jsp技术保持平台和服务器间固有的可移植性。
新闻热点
疑难解答
图片精选