Servlet

Servlet的生命周期

Servlet什么时候被创建

  • 默认情况下第一次被访问的时候才创建
  • 可以通过配置文件设置服务器启动的时候就创建

init

  • Servlet 对象创建的时候调用
  • 默认第一次访问时创建

service

  • 每次请求都会执行一次

destroy

  • Servlet 对象销毁的时候执行
  • 默认服务器关闭时销毁
  • 以上是 Servlet 的生命周期不同状态调用的方式的解释

load-on-startup

  • 配置 load-on-startup 可以让某个对象在服务器启动时就创建,就初始化
  • 值为数字 代表优先级,数据越小,优先级越高,不能为负数

Servlet的配置信息

  • 以下的内容都是关于 web.xml 的配置

<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>
posted @ 2020-10-20 23:08  BNTang  阅读(83)  评论(0编辑  收藏  举报