奥飞火千万电 发表于 2017-2-7 06:39:04

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]
查看完整版本: Tomcat 5 对JSP2.0 支持的新功能介绍