在创建一个Web工程时,就会在页面目录下的WEB-INF中创建整个工程的配置文件web.xml文件。
创建的Servlet类TestServlet.java会自动在web.xml中生成配置信息。
1.Servlet的名称、类和其他选项的配置
在web.xml文件中配置Servlet时,必须制定Servlet的名称、Servlet类的路径,可选择性地给Servlet添加描述信息和制定在发布时显示的名称,代码如下:
<servlet>
<description></description>
<display-name>Test</display-name>
<servlet-nam>Test</servlet-name>
<servlet-class>com.TestServlet</servlet-class>
</servlet>
description元素描述的是Servlet的描述信息,display-name元素描述的是发布时Servlet的名称,Servlet-name元素描述的是Servlet的名称,Servlet的名称,Servlet-class是Servlet类的路径。
2.初始化参数
Servlet可以配置一些初始化参数,例如下面的代码:
<Servlet>
<init-param>
<param-name>number</param-name>
<param-value>100</param-value>
</init-param>
</Servlet>
<init-param>
<param-name>number</param-name>
<param-value>100</param-value>
</init-param>
</Servlet>
这段代码制定参数number的值为100.在Servlet中可以在init()方法体中通过getInitParameter()方法访问这些初始化参数。
3.启动装入优先权
启动装入优先权通过<load-on-startup>元素指定,例如下面的代码:
<Servlet>
<Servlet-name>ServletOne</Servlet-name>
<Servlet-class>com.ServletOne</Servlet-class>
<load-on-startup>5</load-on-startup>
</Servlet>
<Servlet>
<Servlet-name>ServletTwo</Servlet-name>
<Servlet-class>com.ServletTwo</Servlet-class>
<load-on-startup>10</load-on-startup>
</Servlet>
<Servlet>
<Servlet-name>ServletThree</Servlet-name>
<Servlet-class>com.ServletThree</Servlet-class>
<load-on-startup>AnyTime</load-on-startup>
</Servlet>
<Servlet-name>ServletOne</Servlet-name>
<Servlet-class>com.ServletOne</Servlet-class>
<load-on-startup>5</load-on-startup>
</Servlet>
<Servlet>
<Servlet-name>ServletTwo</Servlet-name>
<Servlet-class>com.ServletTwo</Servlet-class>
<load-on-startup>10</load-on-startup>
</Servlet>
<Servlet>
<Servlet-name>ServletThree</Servlet-name>
<Servlet-class>com.ServletThree</Servlet-class>
<load-on-startup>AnyTime</load-on-startup>
</Servlet>
这段代码中,ServletOne类先被载入,ServletTwo类则后被载入,而ServletThree类可在任何时间内被载入。
4.Servlet的映射
在web.xml配置文件中可以给一个Servlet做多个映射,因此,可以通过不用的方法访问这个Servlet,例如下面的代码:
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>
通过上述代码的配置,若请求的路径中包含/Test,则会访问逻辑名为Test的Servlet。下面代码中:
<servlet-mapping>
<servlet-name>OneServlet</servlet-name>
<url-pattern>/Two/*</url-pattern>
</servlet-mapping>
<servlet-name>OneServlet</servlet-name>
<url-pattern>/Two/*</url-pattern>
</servlet-mapping>
通过上述配置,若请求的路径中包含/Two/a或/Two/b等符合/Two/*的模式,则同样会访问逻辑名为OneServlet的Servlet。
注意,在web.xml文件中所有元素的出现次序是有严格限制的,<servlet>元素必须出现在<servlet-mapping>元素之前。