1.1. 描述 Servlet 调用过程?
(1)在浏览器输入地址,浏览器先去查找 hosts 文件,将主机名翻译为 ip 地址,如果找不到就再去查询 dns 服务器将主机名翻译成 ip 地址。
(2)浏览器根据 ip 地址和端口号访问服务器,组织 http 请求信息发送给服务器。
(3)服务器收到请求后首先根据 Host 请求头判断当前访问的是哪台虚拟主机。
(4)服务器根据 http 请求头中的请求 URI 判断当前访问的是哪个 web 应用。
(5)服务器根据 http 请求头中的请求 URI 判断当前访问的是 web 应用中的哪个 web 资
源。
(6)检查 web 应用的 web.xml 文件,如果根据路径找到具体的 servlet 处理类的全路径
名交给该 servlet 处理,如果找不到就交给缺省 servlet 处理。
(7)这个过程中浏览器只知道自己发出来 http 请求,不久就收到了 http 响应,浏览器不
知道也不关心服务器内部是如何处理的。浏览器和服务器之间的关系是非常单纯的,只有
HTTP 协议。
(8)解析请求、封装 RequestResponse 对象、创建 Servlet、调用 Service 方法都是服务
器自动进行的,开发人员只需要写好 Servlet 配置进容器中即可,无需操心具体的底层实现。
1.2. 简述 Servlet 生命周期?
(1)Servlet 第一次被访问到时创建对象,创建出来后立即执行 init