Tomcat 5 对JSP2.0 支持的新功能介绍
[*]EL脚本语言的配置和支持:
对于一个单个JSP页面,你可以使用定义page指令来设置jsp页面是否支持EL。默认是支持EL(如果要页面不支持EL,请设置为isELIgnored=true; <%@ page isELIgnored="true|false"%> 对于整个JSP应用程序,要修改WEB.XML配置(tomcat5.0.16默认是支持EL的);
<jsp-property-group></jsp-property-group>?
<description> For config the ICW sample application </description>
<display-name>JSPConfiguration</display-name>
<url-pattern>/jsp/datareset.jsp</url-pattern>
<el-ignored>true< /<ccid_code> el-ignored>
<page-encoding>ISO-8859-1</page-encoding>
<include-prelude>/jsp/prelude.jspf</include-prelude>
<include-coda>/jsp/coda.jspf</include-coda>
</ccid_code></el-ignored>
[*]算术运算符演示:
以下是EL运算符列表,其中empty可以检查某个值是否为空 运算符说明运算符说明 +
加
> 或 gt大于 -
减
<= 或 le小于等于 *
乘
>= 或 ge大于等于 / 或 div
除
&& 或 and逻辑与 % 或 mod
模(求余)
|| 或 or逻辑或 == 或 =
等于
! 或 not逻辑非 != 或 !=
不等于
empty检查是否为空值 < 或 lt
小于
a ? b : c条件运算符 EL表达式使用简单,在网页中"${}"表示是EL表达式。${1+1} 显示为 2
EL算术表达式运算结果EL 关系运算表达式运算结果${1}1${1 < 2}true${1 + 2}3${1 lt 2}true${1.2 + 2.3}3.5${1 > (4/2)}false${-4 - 2}-6${4.0 >= 3}true${21 * 2}42${4.0 ge 3}true${10%4}2${100.0 eq 100}true${10 mod 4}2${(10*10) != 100}false${(1==2) ? 3 : 4}4${(10*10) ne 100}false
[*]隐含对象数据演示: EL 表达式定义了11个隐含对象,使用这11个对象可以很方便的读取到session,cookie,HttpHeader,用户提交表单(param)等
隐含对象
内容
applicationScope
应用程序范围内的scoped变量组成的集合
cookie
所有cookie组成的集合
header
HTTP请求头部,字符串
headerValues
HTTP请求头部,字符串集合
initParam
全部应用程序参数名组成的集合
pageContext
当前页面的javax.servlet.jsp.PageContext对象
pageScope
页面范围内所有对象的集合
param
所有请求参数字符串组成的集合
paramValues
所有作为字符串集合的请求参数
requestScope
所有请求范围的对象的集合
sessionScope
所有会话范围的对象的集合
下面是获取HTTP访问头部数据和用户提交数据的示例
EL表达式运算结果${header["host"]}
这里得到HTTP连接头部的host值${header["accept"]}这里获得HTTP头部的accept值${header["user-agent"]}这里获得HTTP头部的user-agent值以下可以读取用户提交的信息,假设用户提交信息为 ?name=myname&alies=now.net.cn(这里有两种访问方式,一种是使用[]来进行访问,另外一种是使用" "来进行访问,两种访问效果是一样的。)${param["name"] }?myname${param.name} ?myname${param["alies"] }?now.net.cn${param.alies}now.net.cn?
[*]定义和使用函数 表达式语言允许你定义可在表达式中调用的函数。函数必须作为public类中的public static方法编写。同时要将文件映射到TLD标志库文件中。
为了说明函数的使用,我们举一个简单的例子,把两个数相加。首先要编写求两数之和的Java方法代码,如代码示例3所示,这里定义了一个静态方法,它接收两个字符串参数,把它们解析成整数并返回它们的和。
示例文件:Compute.java
package jsp2.examples.el;import java.util.*;public class Compute {
public static int add(String x, String y) {
int a = 0;
int b = 0;
try {
a = Integer.parseInt(x);
b = Integer.parseInt(y);
}catch(Exception e) {}
return a + b;
}
}
用javac把这段代码编译成功后,下一步就要把函数的签名映射到标签库。代码示例4说明了如何把add函数映射到包含函数实现和函数签名的类。后面将说明把这段代码添加到哪儿。
配置标记库描述文件 函数描述符
<function>
<description>add x and y</description>
<name>add</name>
<function-class>jsp2.examples.el.Compute
</function-class>
<function-signature>int
add(java.lang.String,java.lang.String)
</function-signature>
</function>
现在我们就可以编写一个JSP页面来使用这个函数。代码示例5是包含两个字段的一个表单,用户输入两个数字并按下“求和”按钮,就会调用上面的函数并把两个数相加,结果在同一个页面中显示出来。
代码示例5: math.jsp
<%@ taglib prefix="my"
uri="http://jakarta.apache.org/tomcat/jsp2-example-taglib %>Functions
Add Numbers
X =
Y =
The sum is: ${my:add(param["x"],param["y"])}
页:
[1]