返回站点首页
支持中心首页
常见问题搜索
常见问题
域名相关问题
空间相关问题
邮箱相关问题
智能建站相关问题
繁简通相关问题
中文域名相关问题
代理申请相关问题
 

   

Tomcat 5 对JSP2.0 支持的新功能介绍

  1. EL脚本语言的配置和支持:
    对于一个单个JSP页面,你可以使用定义page指令来设置jsp页面是否支持EL。默认是支持EL(如果要页面不支持EL,请设置为isELIgnored=true;
  2. <%@ page isELIgnored="true|false"%>

    对于整个JSP应用程序,要修改WEB.XML配置(tomcat5.0.16默认是支持EL的);

    <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< / el-ignored>
    <page-encoding>ISO-8859-1</page-encoding>
    <scripting-invalid>true</scripting-invalid>
    <include-prelude>/jsp/prelude.jspf</include-prelude>
    <include-coda>/jsp/coda.jspf</include-coda>
    </jsp-property-group>

  3. 算术运算符演示:
    以下是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
  4. 隐含对象数据演示:

    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
     
  5. 定义和使用函数

    表达式语言允许你定义可在表达式中调用的函数。函数必须作为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 %>
    <HEAD>
    <TITLE>Functions</TITLE>
    </HEAD>
    <BODY>
    <H3>Add Numbers</H3>
    <P>
    <FORM action="math.jsp" method="GET">
         X = <input type="text" name="x" value="\${param["x"]}">
        <BR>
         Y = <input type="text" name="y" value="\${param["y"]}">
        <input type="submit" value="Add Numbers">
    </FORM>
    <P>
    The sum is: \${my:add(param["x"],param["y"])}
    </BODY>
    </HTML>
返回上一页