在编写好servlet文件后需要在web.xml文件下配置servlet,才能使servlet在服务器上运行。基本配置方式如下所示
<context-param>
<param-name>context1</param-name>
<param-value>000001</param-value>
</context-param>
<context-param>
<param-name>context2</param-name>
<param-value>000002</param-value>
</context-param>
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>com.hamigua.servlet.HelloServlet</servlet-class>
<init-param>
<param-name>User</param-name>
<param-value>Servlet1</param-value>
</init-param>
<init-param>
<param-name>PassWord</param-name>
<param-value>123456</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/testServlet</url-pattern>
</servlet-mapping>
这里主要有两大块<servlet>配置和<servlet-mapping>映射。
其中,<context-param>是设置servlet的初始化参数(是全局的,所有的servlet都可以使用),可以在init()方法中通过ServletConfig的对象创建ServletContext对象,并由ServletContext对象调用getInitParameter("User")方法获取到User所对应的value值,调用getInitParameterNames()方法获取到所有的name值,调用getRealPath()获取某一文件在服务器上的绝对路径,调用getContextPath()获取当前web应用的工程名称。
<servlet-name>是为此配置在.xml文件中起的一个唯一名称,此文件中其他配置不可与之同名。同时在<servlet-mapping>中的<servlet-name>必须和此名称一致,因为是同一个servlet配置。
<servlet-class>是servlet文件所在的类的完全限定名。
<init-param>和<context-param>一样设置一些servlet的初始化参数(局部的仅限于此servlet)可以在init()方法中使用ServletConfig的对象调用getInitParameter("User")方法获取到User所对应的value值,调用getInitParameterNames()方法获取到所有的name值。
<load-on-startup>是servlet被创建的时机,也即init()方法调用的时机,若为自然数则数值越小越先被创建。
<url-pattern>是此servlet对外访问的路径,从根目录开始,/testServlet表示根目录下的testServlet。/*表示根目录下所有文件都可访问此servlet,*.jsp表示根目录下所有后缀为jsp的文件都可以访问此servlet。