Servlet的生命周期
Servlet什么时候被创建
- 默认情况下第一次被访问的时候才创建
- 可以通过配置文件设置服务器启动的时候就创建
init
- Servlet 对象创建的时候调用
- 默认第一次访问时创建
service
destroy
- Servlet 对象销毁的时候执行
- 默认服务器关闭时销毁
- 以上是 Servlet 的生命周期不同状态调用的方式的解释
load-on-startup
- 配置
load-on-startup
可以让某个对象在服务器启动时就创建,就初始化
- 值为数字
代表优先级
,数据越小,优先级越高,不能为负数
Servlet的配置信息
<init-params>
<init-name>名称</init-name>
<init-value>值</init-value>
- init 方法中 ServletConfig 参数
- 可以获取到该 Servlert 的配置信息,获得 web.xml 当中的参数
- 如初始化参数
- 获取 ServletContext 对象
<url-patten>
关于缺省Servlet
- 访问的资源不存在时,就会找缺省的地址
- 也就是所有的
url-patten
都匹配不上就会找缺省的 url-patten
<url-patten>/</url-patten>
关于全局Web.xml
- 这个全局的
web.xml
是 tomcat 内部的一个 web.xml
- 对于部署在服务器上的所有应用都有效
- 先到自己工程当中找
web.xml
配置
- 再到全局
web.xml
当中去找配置
- 如果两个当中有相同的配置,会先启用自己当中配置的内容
静态资源的加载过程
- 在
path
后面写的静态资源名称 index.html
或者是其它的 .html
- 它都是会找 web.xml 中自己配置 Servlet 中
ur-patten
当中有没有匹配的内容
- 如果有,就加载对应的 Servlet,如果没有就到自己配置文件当中找缺省的
url-patten
- 如果自己的配置文件当中没有缺省的,就会找全局配置缺省的
url-patten
- 在全局配置当中有一个缺省 的
url-patten
对应的是 default 的 Servlet
defaultServlet
内部会到当前访问的工程根目录当中去找对应名称的静态资源
- 如果有,就把里面的内容逐行读出。响应给浏览器
- 如果没有,就会报 404 错误
关于欢迎页面
- web.xml 中欢迎页面的配置
- 不写任何资源名称的时候,会自动访问配置的欢迎页面
- 默认从上往下找
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>