阿七
级别: 未验证会员
精华:
0
发帖: 909
威望: 0 点
金钱: 2161 RMB
贡献值: 0 点
在线时间:512(小时)
注册时间:2006-03-29
最后登录:2008-08-07
|
JSP 2.0 新功能介绍
JSP 2.0 新功能介绍 ?C}sR: K/ #aa1<-&H http://now.net.cn/support/host/tomcatjsp.net 0EyAMu ^L ]B5,}- JSP2.0 新功能介绍 Gp,
'kw"I -------------------------------------------------------------------------------- |Hfl&3 uNy!<u 作为国内首家推出JSP虚拟主机的网络提供商,时代互联一直都致力于为用户提供更好的、更稳定、更先进的空间服务。我们经过一段时间的对JSP服务器Tomcat最新版本5.0.16的跟踪和测试,感觉到其各方面的性能比前面的版本的确有很大的提高。同时由于对jsp2.0的支持,极大的提高了WEB程序开发和维护的效率,所以时代互联的Tomcat服务器定在2004年2月上旬左右升级为Tomcat5.0.x。 b) Ux3PB 5:$Xtq 以下就简要介绍一下JSP2.0很多全新特性,让大家对JSP2.0有一个初步的了解。要知道, $5x]%1R SAy{YOLtl 时代互联的Tomcat5.0.x服务器支持JSP2.0的所有特性的。 JSP(JavaServer Pages)技术是对Servlet的进一步抽象,它由JCP(Java Community Process)开发,是用于生成动态内容的开放式的、可免费获取的规范,也是J2EE(Java 2 Enterprise Edition)规范的重要组成部分。JSP2.0版是对JSP1.2的升级,增加了一些有趣的新特性。JSP2.0的目标是: ^Wm*-4 使动态网页的设计更加容易 T!(sZf 简化JSP页面,使得JSP页面容易维护 pUGN!3 使WEB应用程序前后台应用更清晰 rfc|`*m}0 无需学习Java编程语言就可以编写JSP页面 >%l:Dw\A: wh*:\_!0\ 除了其他一些改进外,JSP 2.0引入的最主要的新特性包括: a>w~FUm* 一种简单的表达式语言(EL),能够用来容易地从JSP页面访问数据,这种表达式语言简化了基于JSP的不含脚本的应用程序的编写,不需要使用Java Scriptlet或者Java表达式; UG # X/%p 用于直接使用JSP技术来定义可重用的自定义行为的新语法,该语法使用.tag和.tagx文件,这类文件可由开发人员或者网页作者编写; W6i3Psjsw XML语法得到了实质性的改进,增加了新的标准文件扩展名(.tagx用于标签文件,.jspx用于JSP文件)。 ~XKZXGw 时代互联新升级的TOMCAT5.0.x服务器支持以上JSP2.0的全部特性,下面讨论表达式语言、简化的标签API和标签文件,以下的JSP程序都是在TOMCAT5.0.X上实现的。相信目前的JSP开发人员将会发现这些重要的特性不但有趣,而且非常有用。 NZP7r;u aDh|48}X 一. JSP表达式语言 _ EL扩展表达式语言 3
1k v1h.pbz`w EL(表达式语言)是一种数据访问语言,可以方便地访问和处理应用程序数据,而无需使用scriptlet或者请求时(request-time)表达式的值。(不需要使用<% 和%>来获得数据,EL使JSP页面编写人员摆脱了java语言,使用户即使不懂JAVA也可以轻松编写JSP程序. ~5T$8^K 5e8xKL 在JSP2.0之前,网页作者只能使用表达式<%= aName %>访问系统的值,比如: J)KnE2dw5 ;Yv14{T! <someTags:aTag attribute="<%= pageContext.getAttribute("aName") %>"> 或者 <%= aCustomer.getAddress().getCountry() %> R+uw/LG nd.hHQ
而表达式语言允许网页作者使用简单的语法访问对象。比如要访问一个简单变量,可以像下面这样写: F 3s?&T)[G AOAO8%|I <someTags:aTag attribute="${aName}"> 2lo:a{}j %/!+(7
D 而访问JavaBeans属性,可以使用:${aCustomer.address.country} {Zl4C;c P7UJ-2%Y+ Tomcat对EL扩展表达式的支持和配置: He<;4?: tomcat5.0默认支持EL,同时用户可以在Web.xml文件中对整个web应用程序进行设置或者在每个页面中单独设置page指令来控制TOMCAT是否对EL的支持。EL扩展表达式语言的设置 (l_:XG)7~b 表达式运算符号: lQ$+JX;n(y EL表达式运算符包括算数运算符(+-*/),关系运算符(><)和逻辑运算符(&& || !),还有empty 判断值是否为空,同时EL能够对字符串,数字等各种类型的数据之间的自动转换,使EL 兼容了JAVASCRIPT等脚本语言的优点,摆脱了JAVA语言严格的数据类型限制,使用起来简单,只需要几分钟就可以轻松掌握(对于不懂java的网页编写人员实在是一件好事)。各种运算符运算实例 JqS
r[q 内置的11个隐含对象: Wn~ZA# 为方便的获得WEB应用程序的相关数据,EL表达式语言定义了一些隐含对象。隐含对象共有11个对象,(JSP中具有9个隐含对象,EL比JSP中具有更多的隐含对象,这样EL比JSP更方便的获取数据) 使用这些对象可以很方便的访问Web 程序数据。 )qd={ 隐含对象包括Session(获得当前web程序的Session值),cookie(获得WEB程序的Cookie值),header,headerValues(获得用户的Http数据访问头部信息),Param和ParamValues(获得用户提交数据参数)等。 P5P<" Qt~B#R.
V 使用${隐含对象名称["元素"]} 就可以获得这个值了,例如${header("host")} 可以显示http头部中host的值,${param("username")},可以获得显示用户表单提交的用户. 使用${empty(param("username")} 可以判断用户提交表单是否为空等。(这样比jsp1.2中使用request.getParamter("username") 要简化和方便很多了) 3HKxYvc C u>}zm_ 隐含对象及隐含对象访问实例 z<h|#@\ 访问应用程序数据 ~j]dct7 除了可以方便的访问内置的隐含对象外,EL还可以方便的到应用程序数据,访问应用程序数据使用两种方式 . (点号运算符)访问对象的属性,也可以使用[] 来访问数组元素(实际上EL中访问隐含对象数据也是使用这两种方式的) 访问应用程序实例 `)2[ST @ t|3gF$X 表达式${data}表示名为data的scoped变量。可以使用点号(.)或方括号([])运算符从集合中检索属性值:(两种数据访问方式演示) l=NAq_?N\ {#9,j]< 点号运算符用于访问命名的属性,比如表达式${customer.name}表示scoped变量customer的name属性; ~QCA -Yud 方括号运算符可用于检索命名的属性,比如在${customer[“name”]}中。也可以通过${customers[0]}的形式来访问集合customers中的第一项。 B/G3T
u uG EL表达式语言同时还统一了对点号和方括号运算符的处理,因此${customer.name}与${customer[“name”]}是等价的。 r,"7%1I ~b#OFnyG 访问应用程序数据需要进行以下几个步骤: 3(o7co-f 1.编写public类的static public 方法,只有static public的方法才能被标记表达试访问。 yf?W^{^| 2.将方法映射到TLD表中 3a9u"8lG 3.在JSP页面中调用要引用的Taglib标记,然后就可以在jsp页面中访问了。 rmQ\RP W w?S8@|MK 上面关于EL 表达式语言的介绍就暂告一个段落,EL表达式是不是很简单,很方便? 下面的要说的才是EL 显示其真正威力的地方--简单标记库扩展 SimpleTag #\<P]<C mYzcVhV 二. 简单标志库扩展 _SimpleTag p7$3`t6u 在jsp1.2时代已经有标记库了, 并且功能强大,但标记库的编程和调用都比较复杂,导致真正使用到WEB开发中的还是不多。JSP2.0推出的简单标记库扩展解决了以上的问题。简单标记库相对JSP1.2中的标记库来说,优点在于: wx./"m.M ?uig04@3 对后台程序员来说:结构更简单,实现接口更少,可以轻松实现后台程序 FCAJavOGH L\YZT|
K( JSP 2.0中加入了新的创建自制标记的API:javax.servlet.jsp.tagext.SimpleTag,该API定义了用来实现简单标记的接口。和JSP 1.2中的已有接口不同的是,SimpleTag接口不使用doStartTag()和doEndTag()方法,而提供了一个简单的doTag()方法。这个方法在调用该标记时只被使用一次。而需要在一个自制标记中实现的所有逻辑过程、循环和对标记体的评估等都在这个方法中实现。从这个方面来讲,SimpleTag可以和IterationTag达到同等的作用。但SimpleTag的方法和处理周期要简单得多。在SimpleTag中还有用来设置JSP内容的setJspBody()和getJspBody()方法。Web容器会使用setJspBody()方法定义一个代表JSP内容的JspFragment对象。实现SimpleTag标记的程序可以在doTag方法中根据需要多次调用getJspBody().invoke()方法以处理JSP内容。 W#VfX!~ nSS}%&a:LX 对于前台WEB页面制作人员:在JSP1.2时代,Taglib页面调用实际上是比较复杂的,SimpleTag+EL表达式语言极大的简化了Taglib调用,真正达到不懂JAVA的人员也可以轻松编写JSP页面的目的。 )%BT*)x RW)k_#%= 一个Taglib页面的编写和调用包括三个流程(简单标志扩展实例): C`pan /t 1. 后台程序员编写要被调用的程序 eWw y28t 2. 编辑Tag标志描述文件,这个文件要放在WEB-INF\jsp2下面,并且这个文件要以tld为文件结尾。 TtZrttCE6 3.JSP页面人员就可以直接调用了。 9c%(]Rn: 使用标签文件(JSP fragment): [XxA.S)x3 使用简单标签扩展机制的另一种简单的方法是通过标签文件。 ?nY/, q& 标签文件是一种资源文件,网页作者可以利用它抽取一段JSP代码,通过定制功能来实现代码的复用。换句话说,标签文件允许JSP网页作者使用JSP语法创建可复用的标签库。标签文件的扩展名必须是“.tag”。表面上标签文件文件和jsp1.2中的jsp:include 指令中的包含文件好像是一样的,但实际上还是有一些不同的,标签文件一般功能比较短小简单而且重复使用率高的一些代码。看一个简单的标签文件吧 x7Eeb!s0f, 标签文件(JSP fragment)的基本特点是可以使处理JSP的容器推迟评估JSP标记属性。我们知道一般JSP是首先评估JSP标记的属性,然后在处理JSP标记时使用这些属性,而JSP fragment提供了动态的属性。也就是说,这些属性在JSP处理其标记体时是可以被改变的。标签文件是用文本文件格式(JSP语法)实现自制标记,这也是JSP 2.0的一个主要新功能。我们再看一下标签文件的动态复用的一个例子 CO7CNN gl Li eMzt
jN 体验到了JSP2.0的新特性吗?是不是非常方便好用? 提醒你一下时代互联的JSP服务器Tomcat5.0.x支持以上jsp2.0的各种特性。赶快来时代互联申请一个支持jsp2.0的JSP空间体验一下吧。这里可有很多款规格的JSP空间来满足你的需要哦。
|
|
[楼 主]
|
Posted: 2006-04-03 11:24 |
| |