Servlet生命周期简述-java经典面试题
解决方法:
1.加载和实例化
当Servlet容器启动或客户端发送一个请求时,Servlet容器会查找内存中是否存在该Servlet实例(当load-on-startup值为0或者大于0时,表示容器在应用启动时就加载这个servlet;当是一个负数时或者没有指定时,则指示容器在该servlet被请求时才加载和实例化),若存在,则直接读取该实例响应请求;如果不存在,就创建一个Servlet实例。
2. 初始化
实例化后,Servlet容器将调用Servlet的init()方法进行初始化执行一些自定义代码,注意的是整个生命周期只执行一次。
3.服务
初始化后,Servlet处于能响应请求的就绪状态。当接收到客户端请求时,调用service()的方法处理客户端请求,HttpServlet的service()方法会根据不同的请求 转调不同的doXxx()方法。
4.销毁
当Servlet容器关闭时,Servlet实例也随时销毁。Servlet容器会调用Servlet的destroy()方法去判断该Servlet是否应当被释放(或回收资源)。