部署描述文件
文件
Web容器使用部署描述文件(Deployment Descriptor,DD)初始化Web应用程序的组件。Web容器在启动时读取该文件,对应用程序配置,所以有时也将该文件称为配置文件
DD文件的定义
为了保证跨Web容器的可移植性,部署描述文件的文档类型定义(Document Type Definition,DTD)的标准由Sun公司制定。
元素是部署描述文件的根元素,其他是子元素。有的元素还可以有子元素。每个元素都有起始元素和结束元素。
DTD的定义中,带问号(?)的元素可以出现0次或1次,带星号(*)的元素可以出现0次或多次,带加号(+)的元素可以出现一次或多次,不带符号的元素只能出现一次。
元素1
下面定义的每个元素为Web应用程序定义了一个Servlet,下面是元素的DTD定义:
下面的代码展示了在部署描述文件中元素的一个典型的使用:
helloServlet
com.demo.HelloServlet
2
该元素用来定义Servlet名称,该元素是必选项。定义的名称在DD文件中应该唯一。可以通过ServletConfig的getServletName()方法检索Servlet名。
该元素指定Servlet类的完整名称,即需要带包的名称,例如com.demo.HelloServelet。容器将使用该类创建Servlet实例。Servlet类以及它所依赖的所有类都应该在Web应用程序的类路径中。WEB-INF目录中的classes目录和lib目录中的JAR文件被自动添加到容器的类路径中,因此如果把类放到这两个地方就不需要设置类路径。这里也可以使用元素指定一个JSP文件代替元素。
注意:可以使用相同的Servlet类定义多个Servlet,如可以使用com.demo.HelloServlet类定义另一个名为welcomeServlet的Servlet。这样容器将使用一个Servlet类创建多个实例,每个实例有一个名字。
该元素定义向Servlet传递的初始化参数。在一个元素中可以定义任意多个元素。每个元素必须有且仅有一组子元素。定义参数名,定义参数值。Servlet可以通过ServletConfig接口的getInitParameter()方法检索初始化参数。
一般情况下,Servlet是在被请求时由容器装入内存的。也可以使Servlet在容器启动时就装入内存。元素指定是否在Web应用程序启动时载入该Servlet。该元素的值是一个整数。如果没有指定该元素或其内容为一个负数,容器将根据需要决定何时装入Servlet。如果其内容为一个整数,则在Web应用程序启动时载入该Servlet。对不同的Servlet,可以指定不同的值,这可以控制容器装入这些Servlet的顺序,值小的先装入。
元素2
元素定义一个映射,它指定哪个URL模式被该Servlet处理。容器使用这些映射根据实际的URL访问合适的Servlet。下面是元素的DTD定义:
元素应该是使用元素定义的Servlet名,而可以包含要与该Servlet关联的模式字符串。下面是在DD文件中使用元素的例子:
helloServlet
/helloServlet/hello/*
如果一个请求URL串与“/helloServlet/hello/*”匹配,容器将使用名为“helloServlet”的Servlet为用户提供服务。
元素3
通常在浏览器的地址栏中输入一个Web网站名称,而没有指定特定的文件,也能看到页面,这个页面就是欢迎页面,文件名通常为index.html。
在Tomcat中,如果访问的URL是目录,并且没有特定的Servlet与这个URL模式匹配,那么它将在该目录中首先查找index.html文件,如果找不到将查找index.jsp文件,如果找到上述文件,将该文件返回给客户。如果找不到(包括目录也找不到),Tomcat将向客户发送404错误信息。
假设有一个Web应用程序,它的默认的欢迎页面是index.html,还有一些目录都有自己的欢迎页面,如default.jsp。可以在DD文件元素中使用元素指定欢迎页面的查找列表,如下所示:
index.html
index.jsp
home.html
default.jsp
经过上述配置,如果客户使用目录访问该应用程序,Tomcat将在指定的目录中按指定的文件的顺序查找文件,如果找到则把文件发送给客户。
参考资料
最新修订时间:2024-03-28 12:25
目录
概述
DD文件的定义
元素1
参考资料