webxml配置详解Word格式文档下载.docx
《webxml配置详解Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《webxml配置详解Word格式文档下载.docx(12页珍藏版)》请在冰点文库上搜索。
![webxml配置详解Word格式文档下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/12/1262c8f4-4a6f-4deb-85e6-86e917d54008/1262c8f4-4a6f-4deb-85e6-86e917d540081.gif)
●URL"
注意:
在部署描述符中,<
--…-->
用于注释。
部署描述符的根元素是web-app。
DTD文件规定,web-app元素的子元素的语法如下:
ELEMENTweb-app(icon?
display-name?
description?
distributable?
context-param*,filter*,filter-mapping*,
listener*,servlet*,servlet-mapping*,session-config?
mime-mapping*,welcome-file-list?
error-page*,taglib*,resource-env-ref*,resource-ref*,
security-constraint*,login-config?
security-role*,env-entry*,
ejb-ref*,ejb-local-ref*)>
正如您所看到的,这个元素含有23个子元素,而且子元素都是可选的。
问号(?
)表示子元素是可选的,而且只能出现一次。
星号(*)表示子元素可在部署描述符中出现零次或多次。
有些子元素还可以有它们自己的子元素。
web.xml文件中web-app元素声明的是下面每个子元素的声明。
下面的章节讲述部署描述符中可能包含的所有子元素。
在Servlet2.3中,子元素必须按照DTD文件语法描述中指定的顺序出现。
比如,如果部署描述符中的web-app元素有servlet和servlet-mapping两个子元素,则servlet子元素必须出现在servlet-mapping子元素之前。
在Servlet2.4中,顺序并不重要。
下面对web.xml文件各元素进行详解
1.icon元素
icon元素用来指定GIF格式或JPEG格式的小图标(16×
16)或大图标(32×
32)的文件名。
ELEMENTicon(small-icon?
large-icon?
)>
ELEMENTsmall-icon(#PCDATA)>
ELEMENTlarge-icon(#PCDATA)>
icon元素包括两个可选的子元素:
small-icon子元素和large-icon子元素。
文件名是Web应用归档文件(WAR)的根的相对路径。
部署描述符并没有使用icon元素。
但是,如果使用XML工具编辑部署描述符,XML编辑器可以使用icon元素。
2.display-name元素
如果使用工具编辑部署描述符,display-name元素包含的就是XML编辑器显示的名称。
ELEMENTdisplay-name(#PCDATA)>
下面是一个含有display-name元素的部署描述符:
web-app>
display-name>
OnlineStoreApplication<
/display-name>
/web-app>
3.description元素
可以使用description元素来提供有关部署描述符的信息。
XML编辑器可以使用description元素的值。
ELEMENTdescription(#PCDATA)>
4.distributable元素
可以使用distributable元素来告诉servlet/JSP容器,编写将在分布式Web容器中部署的应用:
ELEMENTdistributableEMPTY>
例如,下面是一个含有distributable元素的部署描述符的例子:
distributable/>
5.context-param元素
context-param元素含有一对参数名和参数值,用作应用的servlet上下文初始化参数。
参数名在整个Web应用中必须是惟一的。
ELEMENTcontext-param(param-name,param-value,description?
ELEMENTparam-name(#PCDATA)>
ELEMENTparam-value(#PCDATA)>
param-name子元素包含有参数名,而param-value子元素包含的是参数值。
作为选择,可用description子元素来描述参数。
下面是一个含有context-param元素的有效部署描述符:
context-param>
param-name>
jdbcDriver<
/param-name>
param-value>
com.mysql.jdbc.Driver<
/param-value>
/context-param>
6.filter元素
filter元素用于指定Web容器中的过滤器。
在请求和响应对象被servlet处理之前或之后,可以使用过滤器对这两个对象进行操作。
利用下一节介绍的filter-mapping元素,过滤器被映射到一个servlet或一个URL模式。
这个过滤器的filter元素和filter-mapping元素必须具有相同的名称。
ELEMENTfilter(icon?
filter-name,display-name?
filter-class,init-param*)>
ELEMENTfilter-name(#PCDATA)>
ELEMENTfilter-class(#PCDATA)>
icon、display-name和description元素的用法和上一节介绍的用法相同。
init-param元素与context-param元素具有相同的元素描述符。
filter-name元素用来定义过滤器的名称,该名称在整个应用中都必须是惟一的。
filter-class元素指定过滤器类的完全限定的名称。
下面是一个使用filter元素的部署描述符的例子:
filter>
filter-name>
EncryptionFilter<
/filter-name>
filter-class>
com.branysoftware.EncryptionFilter<
/filter-class>
/filter>
7.filter-mapping元素
filter-mapping元素用来声明Web应用中的过滤器映射。
过滤器可被映射到一个servlet或一个URL模式。
将过滤器映射到一个servlet中会造成过滤器作用于servlet上。
将过滤器映射到一个URL模式中则可以将过滤器应用于任何资源,只要该资源的URL与URL模式匹配。
过滤是按照部署描述符的filter-mapping元素出现的顺序执行的。
ELEMENTfilter-mapping(filter-name,(url-pattern|servlet-name))>
ELEMENTurl-pattern(#PCDATA)>
ELEMENTservlet-name(#PCDATA)>
filter-name值必须对应filter元素中声明的其中一个过滤器名称。
下面是一个含有filter-mapping元素的部署描述符:
com.brainysoftware.EncryptionFilter<
filter-mapping>
servlet-name>
EncryptionFilteredServlet<
/servlet-name>
/filter-mapping>
8.listener元素
listener元素用来注册一个监听器类,可以在Web应用中包含该类。
使用listener元素,可以收到事件什么时候发生以及用什么作为响应的通知。
ELEMENTlistener(listener-class)>
ELEMENTlistener-class(#PCDATA)>
下面是一个含有listener元素的有效部署描述符:
listener>
listener-class>
MyAppListener<
/listener-class>
/listener>
9.servlet元素
servlet元素用来声明一个servlet。
ELEMENTservlet(icon?
servlet-name,display-name?
(servlet-class|jsp-file),init-param*,load-on-startup?
run-as?
security-role-ref*)>
ELEMENTservlet-class(#PCDATA)>
ELEMENTjsp-file(#PCDATA)>
ELEMENTinit-param(param-name,param-value,description?
ELEMENTload-on-startup(#PCDATA)>
ELEMENTrun-as(description?
role-name)>
ELEMENTrole-name(#PCDATA)>
init-param元素与context-param元素具有相同的元素描述符。
可以使用init-param子元素将初始化参数名和参数值传递给servlet。
(1)servlet-name、servlet-class和jsp-file元素
servlet元素必须含有servlet-name元素和servlet-class元素,或者servlet-name元素和jsp-file元素。
描述如下:
●servlet-name元素用来定义servlet的名称,该名称在整个应用中必须是惟一的。
●servlet-class元素用来指定servlet的完全限定的名称。
●jsp-file元素用来指定应用中JSP文件的完整路径。
这个完整路径必须由a/开始。
(2)load-on-startup元素
当启动Web容器时,用load-on-startup元素自动将servlet加入内存。
加载servlet就意味着实例化这个servlet,并调用它的init方法。
可以使用这个元素来避免第一个servlet请求的响应因为servlet载入内存所导致的任何延迟。
如果load-on-startup元素存在,而且也指定了jsp-file元素,则JSP文件会被重新编译成servlet,同时产生的servlet也被载入内存。
load-on-startup元素的内容可以为空,或者是一个整数。
这个值表示由Web容器载入内存的顺序。
举个例子,如果有两个servlet元素都含有load-on-startup子元素,则load-on-startup子元素值较小的servlet将先被加载。
如果load-on-startup子元素值为空或负值,则由Web容器决定什么时候加载servlet。
如果两个servlet的load-on-startup子元素值相同,则由Web容器决定先加载哪一个servlet。
(3)run-as元素
如果定义了run-as元素,它会重写用于调用Web应用中servlet所设定的EnterpriseJavaBean(EJB)的安全身份。
Role-name是为当前Web应用定义的一个安全角色的名称。
(4)security-role-ref元素
security-role-ref元素定义一个映射,该映射在servlet中用isUserInRole(Stringname)调用的角色名与为Web应用定义的安全角色名之间进行。
security-role-ref元素的描述如下:
ELEMENTsecurity-role-ref(description?
role-name,role-link)>
ELEMENTrole-link(#PCDATA)>
role-link元素用来将安全角色引用链接到已定义的安全角色。
role-link元素必须含有已经在security-role元素中定义的一个安全角色的名称。
(5)FacesServlet的servlet元素
在JSF应用中,需要为FacesServlet定义一个servlet元素,如下所示:
DOCTYPEweb-appPUBLIC
--FacesServlet-->
servlet>
FacesServlet<
servlet-class>
javax.faces.webapp.FacesServlet<
/servlet-class>
load-on-startup>
1<
/load-on-startup>
/servlet>
--FacesServletMapping-->
servlet-mapping>
url-pattern>
/faces/*<
/url-pattern>
/servlet-mapping>
10.servlet-mapping元素
seervlet-mapping元素将URL模式映射到某个servlet。
ELEMENTservlet-mapping(servlet-name,url-pattern)>
在前面的“servlet元素”一节中已经介绍了使用servlet-mapping元素的例子。
11.session-config元素
session-config元素为Web应用中的javax.servlet.http.HttpSession对象定义参数。
ELEMENTsession-config(session-timeout?
ELEMENTsession-timeout(#PCDATA)>
session-timeout元素用来指定默认的会话超时时间间隔,以分钟为单位。
该元素值必须为整数。
如果session-timeout元素的值为零或负数,则表示会话将永远不会超时。
下面是一个部署描述符,在用户最近访问HttpSession对象30分钟后,HttpSession对象默认为无效:
session-config>
session-timeout>
30<
/session-timeout>
/session-config>
12.mime-mapping元素
mime-mapping元素将mime类型映射到扩展名。
ELEMENTmime-mapping(extension,mime-type)>
ELEMENTextension(#PCDATA)>
ELEMENTmime-type(#PCDATA)>
extension元素用来描述扩展名。
mime-type元素则为MIME类型。
举个例子,下面的部署描述符将扩展名txt映射为text/plain:
mime-mapping>
extension>
txt<
/extension>
mime-type>
text/plain<
/mime-type>
/mime-mapping>
13.welcome-file-list元素
当用户在浏览器中输入的URL不包含某个servlet名或JSP页面时,welcome-file-list元素可指定显示的默认文件。
ELEMENTwelcome-file-list(welcome-file+)>
ELEMENTwelcome-file(#PCDATA)>
举个例子说明,假设用户在浏览器的地址框中输入
welcome-file子元素用于指定默认文件的名称。
welcome-file-list元素可以包含一个或多个welcome-file子元素。
如果在第一个welcome-file元素中没有找到指定的文件,Web容器就会尝试显示第二个,以此类推。
下面是一个包含welcome-file-list元素的部署描述符。
该元素包含两个welcome-file元素:
第一个指定应用目录中的main.html文件,第二个定义jsp目录下的welcom.jsp文件,jsp目录也在应用目录下。
-//SunMicrosystems,Inc.//DTDWebApplication2.3