Deployment Descriptors(描述符)是一个xml文件,用来描述如何部署一个模块或者应用(根据描述符中定义的配置和容器选项)。举例来说,一个EJB的部署描述符会向EJB容器传递如何管理和控制这个EJB的信息。在WebSphere里面总共有两种部署描述符:web application部署描述符和portlet部署描述符。portlet是和web application部署描述符(web.xml)一起被打包在一个war包里面。这样就定义了每个portlet为一个Web应用的servlet, 包括每个portlet的唯一标示,portlet类和初始化参数。
一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程。web.xml主要用来配置Filter、Listener、Servlet等。但是要说明的是web.xml并不是必须的,一个web工程可以没有web.xml文件。
WEB容器的加载顺序是:ServletContext -> context-param -> listener -> filter -> servlet。并且这些元素可以配置在文件中的任意位置。
加载过程顺序如下:
- 启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点。
- 紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。
- 容器将<context-param>转换为键值对,并交给servletContext。
- 容器创建<listener>中的类实例,创建监听器。
在“Web页”节点下,展开WEB-INF节点,然后双击该web.xml
文件以进行查看。
该web.xml
文件包含Facelets应用程序所需的几个元素。使用NetBeans IDE创建应用程序时,将自动创建以下所有内容。
-
指定项目阶段的上下文参数:
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>上下文参数提供Web应用程序所需的配置信息。应用程序可以定义自己的上下文参数。此外,JavaServer Faces技术和Java Servlet技术定义了应用程序可以使用的上下文参数。
-
一个
servlet
元素及其servlet-mapping
元素指定FacesServlet
。所有带.xhtml
后缀的文件都将匹配:<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping> -
一个
welcome-file-list
元素指定着陆页的位置:<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>