jsp(javaserver pages)技术是对servlet的进一步抽象,它由jcp(java community process)开发,是用于生成动态内容的开放式的、可免费获取的规范,也是j2ee(java 2 enterprise edition)规范的重要组成部分。许多商业应用服务器如bea weblogic、ibm websphere、live jrun和orion都支持jsp技术。
从机票预订系统、银行系统到购物系统,web上到处都在应用jsp技术。新发布的2.0版是对jsp1.2的升级,增加了一些有趣的新特性。jsp2的目标是使动态网页的设计更加容易,而且无需学习java编程语言。
本文内容包括:
提供具有丰富示例代码的教程来使你熟悉jsp2.0
介绍jsp2.0的新特性
提供利用jsp2.0开发应用程序的一些体会给出了一些示例代码,对这些代码稍加修改即可用于你自己的应用程序。
如果你还不熟悉jsp,那么直接从jsp2.0入手是一个不错的主意。但是如果希望学习jsp1.2,也许你需要从jsp教程开始学习。
jsp 2.0
jsp 2.0是对jsp 1.2的升级,增加了几个有趣的新特性,可以使web应用程序设计人员和开发人员的工作更容易一些。jsp 2.0的目标是比以前更易于使用,更重要的是无须学习java语言本身就可以使用它。它增加了一种称为simpletag的新扩展机制来简化标签api(tag api)。
除了其他一些改进外,jsp 2.0引入的最主要的新特性包括:
一种简单的表达式语言(el),能够用来容易地从jsp页面访问数据,这种表达式语言简化了基于jsp的不含脚本的应用程序的编写,不需要使用java scriptlet或者java表达式;
用于直接使用jsp技术来定义可重用的自定义行为的新语法,该语法使用.tag和.tagx文件,这类文件可由开发人员或者网页作者编写;
3xml语法得到了实质性的改进,增加了新的标准文件扩展名(.tagx用于标签文件,.jspx用于jsp文件)。
本文主要讨论表达式语言、简化的标签api和标签文件。相信目前的jsp开发人员将会发现这些重要的特性不但有趣,而且非常有用。 为何要从1.2跨越到2.0?
在java规格请求(jsr 152)中版本号最初定为1.3。但是正如你将在后面看到的那样,由于这些新特性对jsp应用程序的开发模型产生了如此深刻的影响,专家组感到有必要把主版本号升级到2.0,这样才能充分反映这种影响。此外,新的版本号也有助于把开发人员的注意力吸引到这些有趣的新特性上来。令人欣慰的是,所有合法的jsp1.2页面同时也是合法的jsp2.0页面。
jsp 2.0起步
在着手学习jsp 2.0之前,你需要一个支持jsp2.0和java servlet 2.4规范的jsp环境。幸运的是,jakarta tomcat 5.0(alpha测试版)支持新的jsp2.0和servlet 2.4规范,可以从http://jakarta.apache.org/builds/jakarta-tomcat/release/v5.0.4-alpha/下载并安装tomcat 5.0。
jsp表达式语言
向jsp网页传递信息是通过jsp scoped属性和请求参数完成的。专门为网页作者量身定做的一种表达式语言(el)把jsp scoped属性提升为从业务逻辑向jsp页面传递信息的标准方式。但是要注意,尽管这种表达式语言是jsp的一个重要特性,它并不是一种通用的程序语言。它仅仅是一种数据访问语言,可以方便地访问和处理应用程序数据,而无需使用scriptlet或者请求时(request-time)表达式的值。
在jsp2.0之前,网页作者只能使用表达式<%= aname %>访问系统的值,比如下面的例子:
| <sometags:atag attribute="<%= pagecontext.getattribute("aname") %>"> |
| <%= acustomer.getaddress().getcountry() %> |
| <sometags:atag attribute="${ aname}"> |
| ${ acustomer.address.country} |
运算符 定义和使用函数
用javac把这段代码编译成功后,下一步就要把函数的签名映射到标签库。代码示例4说明了如何把add函数映射到包含函数实现和函数签名的类。后面将说明把这段代码添加到哪儿。 代码示例4: 函数描述符
现在我们就可以编写一个jsp页面来使用这个函数。代码示例5是包含两个字段的一个表单,用户输入两个数字并按下“求和”按钮,就会调用上面的函数并把两个数相加,结果在同一个页面中显示出来。 代码示例5: math.jsp
要运行这个例子: 复制compute.java并保存到c:\tomcat5.0\webapps\jsp-examples\web-inf\classes\jsp2\examples\el下;使用javac编译compute.java;编辑文件c:\tomcat5.0\webapps\jsp-examples\web-inf\jsp2\jsp2-example-taglib.tld,把代码示例4中的代码段添加到文件中最后一个</function>标签之后,</taglib>标签之前;复制math.jsp并保存到c:\tomcat5.0\webapps\jsp-examples\jsp2-tutorial下;用浏览器打开该文件。 如果一切正常,应该会看到类似如图3所示的窗口。
|