任何一个Servlet需要配置<servlet>和<servlet-mapping>,<servlet>是用来指定Servlet类的全路径名,<servlet-mapping>用来指定请求的url,两者之间通过<servlet-name>关联
简单配置的案例:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>nickname</servlet-name>
<servlet-class>servlet.LoginServlert</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>nickname</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
</web-app>
具体的其他配置:
<!-- 配置文件 -->
<!-- 1 注册servlet:将servlet实现类,注册给tomcat -->
<servlet>
<!-- 1.1 servlet注册的名称,名称在当前web.xml文件唯一 -->
<servlet-name>demoServlet</servlet-name>
<!-- 1.2 注册的servlet实现类的全限定类名(类路径) -->
<servlet-class>cn.itheima.DemoServlet</servlet-class>
<!-- 1.3 初始化参数 -->
<init-param>
<param-name>参数名称</param-name>
<param-value>参数值</param-value>
</init-param>
<!-- 1.4servlet的初始化方法init()tomcat启动时执行 -->
<load-on-startup>3</load-on-startup>
</servlet>
<!-- 2 映射:给已经注册的servlet,添加一个URL路径。要求:必须先注册 -->
<servlet-mapping>
<!-- 2.1 使用已经注册的servlet名称 -->
<servlet-name>demoServlet</servlet-name>
<!-- 2.2 给映射的servlet,设置一个路径
* #1完全匹配:要求,必须/开头
* 例如:/a/b/c/oneServlet
* 访问路径:http://localhost:8080/day08/a/b/c/oneServlet
* #2不完全匹配:要求,必须/*结尾,任意
* 例如:/a/b/*
* 访问路径:http://localhost:8080/day08/a/b/oneServlet
http://localhost:8080/day08/a/b/twoServlet
* 注意:特殊
/* ,匹配所有
访问路径:http://localhost:8080/day08/oneServlet
访问路径:http://localhost:8080/day08/a/oneServlet
* #3通配符匹配:要求,*.xxx结尾
* 例如: *.html
* 访问路径:http://localhost:8080/day08/a.html
http://localhost:8080/day08/a/b.html
* #4 默认路径,要求,/
* 优先级:#1 优先 #2 优先 #3 优先 #4
-->
<url-pattern>/demo</url-pattern>
<!-- 一个servlet,使用多个路径 -->
<url-pattern>/demo2</url-pattern>
</servlet-mapping>
<!-- 3. 一个servlet,可以对应多个映射 -->
<servlet-mapping>
<servlet-name>demoServlet</servlet-name>
<url-pattern>/demo3</url-pattern>
</servlet-mapping>