[摘]Servlet 2.4 的新功能

Servlet 2.4 的新功能


2003 年11 月底,J2EE 1.4 规范正式发布,Servlet也从原本的2.3版升级至2.4版。其中主要
新增的功能有以下三点:
(1) web.xml DTD 改用XML Schema;
(2) 新增Filter 四种设定;
(3) 新增Request Listener、Event 和Request Attribute Listener、Event。

一、web.xml 改用XML Schema

Servlet 在2.4 版之前,web.xml 都是使用DTD(Document Type Definition)来定义XML 文件内
容结构的,因此,Servlet 2.3 版 web.xml 一开始的声明如下:

PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

…………



到了Servlet 2.4 版之后,web.xml 改为使用XML Schema,此时web.xml 的声明如下:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
…………


由DTD 改为Schema,主要加强两项功能:
(1) 元素可不依照顺序设定;
(2) 更强大的验证机制。
下面的范例,在Servlet 2.3 版是不合规则的web.xml 文件:


...

ServletA
tw.com.javaworld.servlet.ServletA


ServletA
/ServletA/*


ServletB

tw.com.javaworld.servlet.ServletB


ServletB
/ServletB /*

...


因为元素必须在元素之后,因此,上述的范例要改为:


...

ServletA
tw.com.javaworld.servlet.ServletA


ServletB
tw.com.javaworld.servlet.ServletB



ServletA
/ServletA/*


ServletB
/ServletB /*

...


不过在Servlet 2.4版之后,原来的范例也算是一个合法的web.xml文件,不再须注意元素的顺序。
除此之外,Servlet 2.4 版web.xml 的Schema 更能提供强大的验证机制,例如:
(1) 可检查元素的值是否为合法的值。例如:元素,其值只
能为REQUEST、FORWARD、INCLUDE 和ERROR,如下所示:

Hello
/CH11/*
REQUEST
FORWARD

元素的值不为上述四种时,此web.xml 将会发生错误。
(2) 可检查如Servlet、Filter 或EJB-ref 等等元素的名称是否惟一。例如:


ServletA
tw.com.javaworld.servlet.ServletA


ServletA
tw.com.javaworld.servlet.ServletB

你可能感兴趣的:(servlet)