什么是 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> |