Servlet执行流程
Get方式请求HelloServlet ---> <a href="servlet/HelloServlet">
↓
服务器在配置文档中查找相对应的Servlet
<servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-parttern>/servlet/HelloServlet</url-pattern> </servlet-mapping>
↓
找到相对应的处理类
<servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>servlet.HelloServlet</servlet-class> </servlet>
↓
再根据具体请求方式找到对应的处理方法
Servlet生命周期
1.初始化阶段,调用init()方法
2.响应客户请求阶段,调用service()方法。由service()方法根据提交方式选择执行doGet()或者doPost()方法
3.终止阶段,调用destroy方法
(下图request和response箭头打反了)
在下列时刻Servlet容器装载Servlet:
第一种情况Servlet容器启动时自动装载某些Servlet,实现它只需要在web.xml文件中的<Servlet></Servlet>之间添加如下代码:
<Servlet> ... <loadon-startup>1</loadon-startup> </Servlet>
数字越小表示优先级越高。
第二种情况
在Servlet容器启动后,客户首次向Servlet发送请求
第三种情况
Servlet类文件被更新后,重新装载Servlet(Servlet是长期驻留在内存的)
Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在整个Servlet的生命周期内,init()方法只被调用一次。