web.xml 文件中定义和映射Servlet
web.xml 文件中必须先定义一个servlet实例(servlet instance),然后将此实例映射到一个或多个URL patterns。
1.定义servlet实例:
<servlet>元素定义了一个servlet实例。<servlet>元素必须包含了<servlet-name>和<servlet-class>两个子元素,也可能包括其他初始化参数。
<servlet-name>元素定义了servlet实例唯一的名字。每一个servlet实例必须有唯一的名字,这个名字仅用来配合对此实例的URL映射,所以不一定要和servlet类或servlet的URL一致。
<servlet-class>元素告诉servlet容器如何构建一个servlet类的实例。<servlet-class>元素包含两部分,包含servlet的package名和servlet类的类名。例如:
<servlet>
<servlet-name>getStatus</servlet-name>
<servlet-class>status.createStatusServlet</servlet-class>
</servlet>
由于servlet实例的名称不必和servlet类的类名一致。要将相同servlet类的另一个实例加载到容器,只需另起一个servlet实例名。例如:
<servlet>
<servlet-name>getStatus</servlet-name>
<servlet-class>status.createStatusServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>fullStatus</servlet-name>
<servlet-class>status.createStatusServlet</servlet-class>
</servlet>
每一个<servlet>元素还可选性的包含任何数量的<init-param>元素。容器将参数传给各自的servlet。如同命令行参数传给整个程序一样,单独的 servlet 要求各自的参数名和参数值。例如:
<servlet>
<servlet-name>getStatus</servlet-name>
<servlet-class>status.createStatusServlet</servlet-class>
<init-param>
<param-name>output</param-name>
<param-value>brief</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>fullStatus</servlet-name>
<servlet-class>status.createStatusServlet</servlet-class>
<init-param>
<param-name>output</param-name>
<param-value>verbose</param-value>
</init-param>
</servlet>
一个<servlet>元素只能定义一个servlet实例。为了使容器将requests传送给servlet,一个servlet必须被映射到一个或多个URL或由其他servlet 或 filter通过此servlet的名字来调用。