12.9 配置web.xml描述符
在“项目”窗口中,展开Web应用程序项目的“配置文件”节点。双击web.xml,可以在web.xml可视编辑器中将其打开并进行编辑。打开XML标签,可以直接对web.xml文件进行编辑。
12.9.1 常规
在web.xml可视编辑器中选中“常规”标签,展开“常规”节点,可以定义web.xml文件的一些常规元素,如图12-39所示。
图12-39 web.xml描述符的常规设置
在“显示名称”文本框中指定文件的显示名称,如MyShop。在“描述”文本框中可以指定应用程序的描述信息。
选中“可分发的”复选框,可以指定会话中的所有请求必须同时由一个Java虚拟机来处理。在“会话超时”文本框中,可以为当前Web应用程序中创建的所有会话指定默认会话超时间隔,单位为分钟。如果会话超时时间设置为-1,则会话将永不过期。
12.9.2 上下文参数
上下文参数是可在整个Web应用程序中使用的初始化参数,利用上下文参数,可以初始化一些有可能经常变动的内容,以增加页面的灵活性。
在web.xml可视编辑器中选中“常规”标签,展开“上下文参数”节点,来添加、删除和查看Web应用程序的上下文参数,如图12-40所示。
单击“删除”按钮,可以删除选中的上下文参数。单击“添加”按钮或者“编辑”按钮,可以打开“添加上下文参数”对话框,如图12-41所示。
其中,“参数名称”文本框用于指定参数的名称,如name。“参数值”文本框用于指定参数值,如Apple。“描述”文本框用于输入描述信息。
图12-40 web.xml描述符的上下文参数设置 图12-41 “添加 上下文参数”对话框
12.9.3 应用程序侦听程序
通过使用Web应用程序侦听程序,可以更好地控制与ServletContext和HttpSession对象之间的交互,并有效地管理Web应用程序使用的资源。Web应用程序侦听程序是实现一个或多个Servlet事件侦听程序接口的类。
初始化和销毁Servlet上下文和会话时,以及在上下文或会话中添加或删除属性时,应用程序事件将可能通知Web应用程序侦听程序。
在web.xml可视编辑器中选中“常规”标签,展开“上下文参数”节点,来添加、删除和查看Web应用程序侦听程序的部署信息,如图12-42所示。
图12-42 web.xml描述符的应用程序侦听程设置
单击“删除”按钮,可以删除选中的应用程序侦听程序。单击“添加”按钮,或者“编辑”按钮,可以打开“添加侦听程序”对话框,如图12-43所示。在“侦听程序类”文本框中,可以指定侦听程序的类,如NewServletListener。单击旁边的“浏览”按钮,可以在项目中侦听程序类。在“描述”文本框中,可以输入侦听程序的描述信息。
图12-43 “添加 侦听程序”对话框
说明:在web.xml文件中注册Web应用程序侦听程序前,请确认应用程序侦听程序已经存在。
12.9.4 Servlet
要部署Servlet,必须在web.xml文件中对其进行注册。通过执行此操作,可为服务器提供部署Servlet所需的信息。
在web.xml可视编辑器中选中“Servlet”标签,来添加、删除和查看Web应用程序的Servlet和JSP文件(可选)的部署信息。单击“添加Servlet元素”按钮,打开“添加 Servlet”对话框,如图12-44所示。对话框中各个参数的说明如表12-3所示。
图12-44 “添加 Servlet”对话框
表12-3 “添加Servlet”对话框中各个参数的说明
参 数 | 描 述 |
Servlet名称 | 用于设置Servlet或JSP文件的显示名称 |
Servlet类 | 用于指定Servlet的类 |
JSP文件 | 用于指定JSP文件 |
描述 | 用于输入描述信息 |
URL模式 | 指定Servlet定义或JSP文件定义与URL模式之间的映射,如/myshop/*、*.jsp。对指定的URL模式的所有请求,由Servlet文件定义的关联Servlet,或由JSP文件定义的关联JSP文件来处理 |
输入完成后,单击“确定”按钮,输入的值会显示在“Servlet”部分,如图12-45所示。
图12-45 web.xml描述符的Servlet设置
在“启动顺序”文本框中,可以输入一个整数,设置Servlet在应用程序中的启动顺序。如果要设置初始化参数,可以单击“初始化参数”部分的“添加”按钮。
单击“安全角色引用”部分的“添加”按钮,可以输入如下的内容。
— 角色引用名称:指定安全角色引用的显示名称。
— 角色引用链接:指定在可视编辑器的“安全性”部分中的“安全角色”表中定义的安全角色。
— 描述:指定描述信息。
“安全角色引用”部分的“运行方式”下拉列表框用于指定安全角色的运行方式。
12.9.5 过滤器
过滤器是一组可重用的代码,用于修改向Servlet发出的请求及其作出的响应。过滤器可以实现用户身份验证、日志和审计、本地化、数据压缩、XML内容的XSLT变换等功能。
在web.xml可视编辑器中,选中“Servlet过滤器”部分和“过滤器映射”部分来添加、删除和查看Web应用程序的Servlet过滤器的部署信息,如图12-46所示。其中各个参数的说明如表12-4所示。
图12-46 web.xml描述符的过滤器设置
表12-4 过滤器设置各个参数的说明
参 数 | 描 述 |
过滤器名称 | 指定过滤器的显示名称,如NewSimpleFilter |
过滤器类 | 指定过滤器的类,如NewSimpleFilterClass |
描述 | 指定描述信息 |
参数名称 | 定参数的显示名称 |
参数值 | 指定参数值 |
过滤器名称 | 选择映射要应用到的过滤器 |
应用于 | 指定过滤器要应用到的URL模式或Servlet,如/mydata。 |
分发程序类型 | 指定过滤器应用于请求的方式,可以选择下面的一种或多种分发程序类型。 — 请求:默认方式,仅当请求直接来自客户端时为请求方式 — 前移:仅当请求已转发到组件时 — 包括:仅当请求将由某个被包含的组件处理时 — 错误:仅当请求将通过错误页面机制处理时 |
12.9.6 欢迎文件
欢迎文件是在部署Web应用程序时显示的JSP文件、HTML文件或Servlet。在web.xml可视编辑器中,选中“页面”标签,展开“欢迎文件”部分,来添加、删除和查看Web应用程序的欢迎文件,如图12-47所示。
单击“浏览”按钮,查找和选择所需的欢迎文件。可以选择多个欢迎文件,但只将第一个现有的欢迎文件用作Web应用程序的欢迎文件。可以将其他文件注册为欢迎文件进行测试和调试。
在开发阶段时,还可以通过第12.7.6节中介绍的方法,在项目属性的“相对URL”文本框中键入欢迎文件。此时,会首先使用项目属性中的设置。只有当项目属性中的设置不存在时,才会使用web.xml文件中的设置。在项目部署到服务器后,只能使用web.xml中定义的欢迎文件。
图12-47 web.xml描述符的欢迎文件设置
12.9.7 错误页面
Servlet和JSP页等Web组件可能会抛出异常以说明错误情况。通常,Web组件会捕获和处理其自己的异常以及它所使用的其他组件抛出的异常。当Web组件收到或生成它没有捕获的异常时,就会将该异常传递到Web容器。如果将另一个Web组件定义为该异常的错误页面,则请求会指向错误页面的URL。
在web.xml可视编辑器中,选中“页面”标签,展开“错误页面”部分,来添加、删除和查看Web应用程序错误页面的部署信息,如图12-48所示。其中各个参数的说明如表12-5所示。
图12-48 web.xml描述符的错误页面设置
表12-5 错误页面各个参数的说明
参 数 | 描 述 |
错误页面位置 | 指定用于处理错误的错误页面 |
错误代码 | 设置调用错误页面的HTTP错误代码,如404。当设置了错误代码后,就不需要再设置异常类型了 |
异常类型 | 指定调用错误页面的Java异常类型,如java.lang.NullPointerException。当设置了异常类型后,就不需要再设置错误代码了 |
12.9.8 JSP属性组
JSP属性组是为Web应用程序中的一组JSP文件定义的一组属性。在web.xml可视编辑器中,选中“页面”标签,展开“JSP属性组”部分,来添加、删除和查看Web应用程序的JSP属性组,如图12-49所示。其中各个参数的说明如表12-6所示。
图12-49 web.xml描述符的JSP属性组设置
表12-6 JSP属性组各个参数的说明
参 数 | 描 述 |
显示名称 | 指定组的显示名称 |
描述 | 输入描述信息 |
URL模式 | 指定将使用这些属性的JSP文件组,例如myshop/*.jsp |
页面编码 | 为组中所有JSP文件指定页面编码。有效值应与单个JSP文件的page指令的pageEncoding属性所使用的值相同。如果在JSP属性组中为页面编码定义某个值,然后在单个JSP文件的pageEncoding指令中为其指定另一个不同的值,则会出现转换时错误 |
忽略表达式语言 | 忽略属于该组的所有JSP文件的默认表达式语言(EL)计算模式。不同的web.xml版本,默认值也不相同。使用Servlet 2.3或更早版本的web.xml文件提供的JSP文件,其默认模式为忽略EL表达式,这会提供向后兼容性。Servlet 2.4版本的web.xml,其默认模式为计算EL表达式,这会自动提供大多数应用程序所需的默认值。未进行计算的EL表达式将作为一般文本进行处理 |
忽略Java脚本 | 使属于该组的所有JSP文件的脚本无效。默认情况下,JSP文件中的脚本是有效的。在脚本无效时,如果组中的任何页包含scriptlet、脚本表达式和声明,则它们会产生转换错误 |
XML语法 | 指定组中的所有JSP页是JSP文档,而不是JSP文件。这意味着它们使用JSP文档语法,而不是标准JSP语法 |
包括Prelude(页眉) | 指定组中的所有JSP文件隐式包含页眉 |
包括Coda(页脚) | 指定组中的所有JSP文件隐式包含页脚 |
12.9.9 环境条目
应用程序环境条目是可以在整个Web应用程序中使用的初始化变量,例如可以使用它们来验证对象的类型。
在web.xml可视编辑器中,选中“引用”标签,展开“环境条目”部分,来添加、删除和查看Web应用程序的环境变量,如图12-50所示。其中各个参数的说明如表12-7所示。
图12-50 web.xml描述符的环境条目设置
表12-7 环境条目各个参数的说明
参 数 | 描 述 |
条目名 | 指定变量的名称 |
条目类型 | 指定变量的数据类型 |
条目值 | 条目变量对应的条目值 |
描述 | 指定描述信息 |
12.9.10 资源引用
要从Web应用程序中访问数据源、JMS连接工厂、JavaMail会话或URL链接,必须在该应用程序的Web应用程序部署描述符中声明资源引用。资源引用指定了在访问资源时使用的JNDI名称、对象类型和验证种类。
在web.xml可视编辑器中,选中“引用”标签,展开“资源引用”部分,来添加、删除和查看Web应用程序的资源引用,如图12-51所示。其中各个参数的说明如表12-8所示。
图12-51 web.xml描述符的资源引用设置
表12-8 资源引用各个参数的说明
参 数 | 描 述 |
资源名称 | 指定资源引用的名称 |
资源类型 | 通过下拉列表框选择资源的类型,可以是如下的几个值。 — javax.sql.DataSource:数据源 — javax.jms.ConnectionFactory:连接工厂 — javax.mail.Session:会话 — java.net.URL:URL链接 |
续表
参 数 | 描 述 |
验证 | 指定验证凭证的来源,可以是如下的几个值。 — Container:默认值,由登录到服务器并创建组件实例的调用者提供 — Application:应用程序提供的编程验证 |
共享范围 | 指定是否共享资源,可以是如下的几个值。 — Shareable:进行资源共享 — Unshareable:不进行资源共享 |
描述 | 指定描述信息 |
12.9.11 资源环境引用
资源环境引用包含Web应用程序对管理对象(该对象与Web应用程序环境中的资源关联)的引用声明。它包含可选描述和资源环境引用名称,并且指明了Web应用程序代码需要的资源环境引用类型。
在web.xml可视编辑器中,选中“引用”标签,展开“资源环境引用”部分,来添加、删除和查看Web应用程序的资源环境引用,如图12-52所示。其中各个参数的说明如表12-9所示。
图12-52 web.xml描述符的资源环境引用设置
表12-9 资源环境引用各个参数的说明
参 数 | 描 述 |
资源名称 | 指定资源环境引用的名称。指定的值是在Web应用程序代码中使用的环境条目名称。该名称是与java:comp/env上下文相对的JNDI名称,在Web应用程序中必须是唯一的 |
资源类型 | 指定资源环境引用的类型:javax.jms.Queue或javax.jms.Topic,是Java语言类或接口的全限定名称 |
描述 | 指定描述信息 |
12.9.12 EJB引用
如果项目中使用了EJB组件,可以“EJB引用”部分来添加、删除和查看Web应用程序的EJB模块引用,在部署时会将此处创建的引用映射到EJB模块的实际位置。
在web.xml可视编辑器中,选中“引用”标签,展开“EJB引用”部分,如图12-53所示。其中各个参数的说明如表12-10所示。
12.9.13 消息目标引用
J2EE 1.4规范允许J2EE组件使用名为消息目标引用的逻辑名称来引用消息目标对象。可以在EJB模块、应用程序客户端模块或Web模块中定义消息目标引用所指向的消息目标。
在web.xml可视编辑器中,选中“引用”标签,展开“消息目标引用”部分,来添加、删除和查看Web应用程序的消息目标引用,如图12-54所示。其中各个参数的说明如表12-11所示。
图12-53 web.xml描述符的EJB引用设置
表12-10 EJB引用各个参数的说明
参 数 | 描 述 |
EJB引用名称 | 指定资源引用的名称 |
EJB类型 | 指定引用的EJB所需的Java类型 |
接口类型 | 指定引用的EJB所需的接口类型 |
Home接口 | 指定EJB Home接口的全限定类名 |
远程/本地接口 | 指定EJB远程/本地接口的全限定类名 |
链接的EJB | 指定JavaEE应用程序包中包含的EJB模块的名称 |
描述 | 指定描述信息 |
图12-54 web.xml描述符的消息目标引用设置
表12-11 消息目标引用各个参数的说明
参 数 | 描 述 |
引用名称 | 指定引用的名称。消息目标引用的名称是相对于java:comp/env context的。如名称应该为jms/SharePriceQueue,而不是java:comp/env/jms/SharePriceQueue |
引用类型 | 指定所需的引用目标类型:java.jms.Queue或java.jms.Topic |
用法 | 指定消息目标如何处理消息。 — Produces:生产 — Consumes:消费 — ConsumesProduces:生产和消费两者皆有 |
链接的消息目标 | 消息目标的名称 |
描述 | 指定描述信息 |
12.9.14 登录配置
在web.xml可视编辑器中,选中“安全”标签,展开“登录配置”部分,来配置Web应用程序的验证,如图12-55所示。其中各个参数的说明如表12-12所示。
图12-55 web.xml描述符的登录配置设置
表12-12 登录配置各个参数的说明
参 数 | 描 述 |
无 | 表示没有验证,这就相当于从部署描述符中删除了登录配置元素 |
摘要 | 一种验证机制。在该机制中,Web应用程序通过向Web服务器发送消息摘要及其HTTP请求消息来对自身进行验证。通过对HTTP请求消息和客户端口令的组合使用单向散列算法,可以计算摘要。摘要通常比HTTP请求小得多,并且不包含口令 |
客户端证书 | 一种使用HTTP over SSL的验证机制。在该机制中,服务器和(可选)客户端通过公共密钥证书来彼此验证对方(该公共密钥证书符合由X.509公共密钥基础结构定义的标准) |
基本 | 可以在“域名称”字段中键入安全域的名称,但无法对该值进行验证 |
窗体 | 允许为登录页和错误页选择JSP页 |
12.9.15 安全角色
在web.xml可视编辑器中,选中“安全”标签,展开“安全角色”部分,来添加、编辑和删除安全角色,如图12-56所示。其中各个参数的说明如表12-13所示。
图12-56 web.xml描述符的安全角色设置
表12-13 安全角色各个参数的说明
参 数 | 描 述 |
角色名称 | 安全角色的名称 |
描述 | 指定描述信息 |
12.9.16 安全约束
在web.xml可视编辑器中,选中“安全”标签,展开“安全约束”部分,来添加、编辑和删除安全约束,如图12-57所示。其中各个参数的说明如表12-14所示。
图12-57 web.xml描述符的安全约束设置
表12-14 安全约束各个参数的说明
参 数 | 描 述 | |
显示名称 | 标识安全约束的唯一名称 | |
Web资源集合 | URL模式和HTTP方法的列表,这些模式和方法描述了要保护的Web资源的集合 | |
| 名称 | 标识Web资源的唯一名称 |
URL模式 | 由逗号分隔的URL模式 | |
HTTP方法 | 用于此Web资源的一种或多种HTTP方法 | |
描述 | 指定描述信息 | |
启用验证约束 | 用于确定允许哪些特定角色访问Web资源集合的验证规则。选中该选项时,要在“角色名称”文本框中输入由逗号分隔的角色列表。这些角色必须与“安全角色”表中定义的角色相匹配 | |
启用用户数据约束 | 指示应该如何保护客户端与Web容器之间的数据。此保护可以防止篡改数据或防止窃取数据。在“保证传输”下拉列表框中,可以选择如下几个传输保证的类型。 NONE:无任何的类型 INTEGRAL:用于确保实体之间的通信不被其他方篡改,尤其是其他方无法截取并修改实体之间的通信。此完整性机制还可用于确保消息只能被使用一次 CONFIDENTIAL:用于确保实体之间的通信保密。此保密性是通过对消息内容加密而获得的 |
sun-web.xml描述符用于配置Sun Java System Application Server的部署设置。在“项目”窗口中,展开Web应用程序项目的“配置文件”节点。双击sun-web.xml,可以在sun-web.xml可视编辑器中将其打开并进行编辑。
12.10.1 常规
在sun-web.xml可视编辑器中选择“常规”标签,可以在这里设置常规的属性,如图12-58所示。其中各个参数的含义如表12-15所示。
图12-58 “常规”标签
表12-15 “常规”标签中各个参数的说明
参 数 | 描 述 |
上下文根目录 | 上下文根目录是WAR文件的基目录。Servlet上下文使用上下文根目录来解析WAR文件的路径 |
错误URL | 指定出现错误时重定向到的URL |
启用类加载器配置 | 选中该复选框,将启用类加载器 |
附加类路径 | 输入附加类的路径 |
动态重载间隔 | 设置动态重载的间隔时间 |
12.10.2 消息
在sun-web.xml可视编辑器中选择“消息”标签,提供对任何资源的引用,如图12-63所示。其中各个参数的含义如表12-16所示。
图12-59 sun-web.xml描述符的消息设置