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。
1,web.xml DTD 改用XML Schema
Servlet 2.3版的web.xml 都是使用 DTD(Document Type Definition)来定义 XML 文件内容结构的。
web.xml一开始的声明如下:
<!DOCTYPE web-app
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-app xmlns="http://java.sun.com/xml/ns/j2ee"
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) 更强大的验证机制。
2,新增Filter四种设定
Servlet 2.4 版新增的Filter四种设定为:REQUEST、FORWARD、INCLUDE 和 ERROR。
3,新增 Request Listener、Event 和 Request Attribute Listener、Event
4, 取消SingleThreadModel接口。
当Servlet实现 SingleThreadModel接口时,它能确保同时间内,只能有一个thread 执行此Servlet。
5,<welcome-file-list>可以为Servlet。
<welcome-file-list>
<welcome-file>Index</welcome-file>
</welcome-file-list>
6,ServletRequest 接口新增一些方法。
public String getLocalName( );
public String getLocalAddr( );
public int getLocalPort( );
public int getRemotePort( );