什么是 web.xml
web.xml是Java工程中用来设置初始化配置信息的文件。xml的书写规则是有Schema文件来定义的。
web.xml使用的schema一般是Sun定义的,标注在标签<web-app>中。  
web.xml中设置Servlet的常用标签
【1】servlet
1  | <!-- servlet的配置 -->  | 
配置servlet标签需要配置两个,一个是servlet本身,另一个servlet-mapping是servlet的映射信息。
servlet的servlet-name可以自定义,一般为servlet的类名,而servlet-class则是servlet类的全路径。
servlet-mapping的servlet-name是对应的servlet名,url-pattern则是我们输入到浏览器地址栏中的用来调用servlet的url。
| url-pattern | |
|---|---|
| 精确匹配 | /servlet | 
| 模糊匹配 | /* | 
| 模糊匹配 | /path/* | 
| 模糊匹配 | *.后缀 | 
url-pattern除了上面的基本写法之外,还要注意几点:
/或者*, url不能直接用servlet名开头。- 同时使用两种模糊匹配是非法路径
 - 匹配优先级:精确匹配最优先,后缀匹配最后
 
【2】初始参数
可以设置两种参数用来初始化servlet,一种是init-param,一种时context-param。
关于两种参数的区别:init-param and context-param  
init-param是给特定servlet设置的参数,所以写在<servlet>下面
1  | <servlet>  | 
使用的时候通过getServletConfig().getInitParamter("userName")来调用。
context-param是为webApp全局准备的参数,直接定义在<web-app>标签下,通过getServletContext().getInitParamter("userName")来调用
1  | <web-app>  | 
【3】特殊标签
- 错误处理
 
1  | <error-page>  | 
- 过滤器
 
1  | <filter>  | 
- 监听器
 
1  | <listener>  | 
- 会话
 
1  | <session-config>  | 
- 欢迎页
 
找不到index1,就会加载index2
1  | <welcome-file-list>  | 

