Servlet的生命周期方法:
在Servlets中,我们有三种生命周期方法,它们是
public void init (); public void service (ServletRequest req, ServletResponse res); public void destroy ();
public void init():
每当客户端向Servlet提出请求时,服务器将接收请求,并且它会自动调用init()方法i.e.,只要我们首次请求,服务器将仅调用一次init()方法。
在此方法中,我们编写了一个执行一次时间操作的语句块,例如打开文件,数据库连接,参数初始化等。
public void service (ServletRequest, ServletResponse):
在调用init()方法后,将在从第二个请求中授予进一步的后续请求时调用service()方法,服务器将仅调用服务方法。
因此,Service()方法将被调用,每次都会调用,何时何时何时提出请求。
在service()方法中,我们编写一个语句块,该块将执行重复的操作,例如从数据库中检索数据,从文件中检索数据,参数数据的修改等,因此,我们始终写入业务逻辑。
每当控制到SERVICE()方法时,服务器都将创建ServletRequest和servletResponse接口的两个对象。
servletRequest的对象包含客户端传递的数据。
处理客户端数据后,必须将结果数据保存在servletResponse的对象中。
必须始终在Service()方法范围内使用servletRequest和servletResponse的对象,即,我们不能在init()方法中使用()方法并销毁()方法。
一旦服务()方法完成了servletRequest的对象,将销毁servletResponse的对象。
public void destroy():
将在两个情况下由服务器调用destroy()方法;它们是关闭服务器的,并且当从服务器上下文中删除servlet时。
在此方法中,我们编写了在init()方法中获得的语句块。
注意:生命周期方法是服务器在不同时间调用的方法,以执行各种操作。
示例
import javax.servlet.*; import java.io.*; public class First extends GenericServlet { public First() { System.out.println("I AM FROM DEFAULT CONSTRUCTOR..."); } public void init() { System.out.println("I AM FROM init METHOD..."); } public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { System.out.println("I LOVE MY MOM..."); System.out.println("I AM FROM service METHOD..."); } public void destroy() { System.out.println("I AM FROM destroy METHOD..."); } };