Servlet的API和生命周期
一、Servlet的API(生命周期)
(1)Servlet接口中的方法
1)init(ServletConfig config)
何时执行:servlet对象创建的时候执行(以上图为例:在浏览器中按地址第一次访问服务器时,Tomcat服务器会new 一个QuickstartServlet对象,并通过生成的对象调用init方法,init方法仅仅执行一次。)
ServletConfig : 代表的是该servlet对象的配置信息。
参数作用:
1. 可以通过参数config获得该servlet的name.
2.可以通过参数config获得该servlet的初始化参数。
3.可以通过参数config获得ServletContext对象
2)service(ServletRequest request,ServletResponse response)
何时执行:每次请求都会执行 (以上图为例:在浏览器中按地址访问服务器时,Tomcat服务器会通过第一次访问时new 的QuickstartServlet对象调用service方法,每次访问服务器都会执行service方法。)
ServletRequest :代表请求, 可以认为ServletRequest 内部封装的是http请求的信息。
ServletResponse :代表响应, 可以认为ServletResponse内部封装的是http响应的信息。
3)destroy()
何时执行:servlet销毁的时候执行(关闭Tomcat服务器时,执行)
(2)Servlet的生命周期(面试题)
1)Servlet何时创建?
默认第一次访问servlet时创建该对象(可以通过配置使第一次访问时,不创建Servlet对象)
2)Servlet何时销毁?
服务器关闭servlet就销毁了 (Tomcat运行时,会在内存中为Tomcat服务器分配一部分内存。Servlet对象、request对象、response对象以及session对象的创建,其实都是在Tomcat分配的内存中创建和运行的,当Tomcat服务器关闭时,这些对象和资源才能得到释放。)
3)每次访问必然执行的方法?
service(ServletRequest req, ServletResponse res)方法
面试题:说一下Servlet的生命周期?
Servlet的生命周期无非是:servlet的创建和销毁,当浏览器第一次访问服务器时,servlet创建,当关闭服务器时,servlet销毁;
当servlet对象创建时,会调用init方法, 当servlet对象销毁时,会调用destroy方法。每次访问相应的servlet都会调用service方法。
ServletRequest :代表请求 认为ServletRequest 内部封装的是http请求的信息
ServletResponse :代表响应 认为要封装的是响应的信息