servlet是位于J2EE表示层的应用服务器。
servlet理解篇
1)首先,servlet是一段程序,其次,是运行在服务器上的程序,再次,是处理客户端请求的运行在服务器上程序。主要功能在于交互式地浏览和修改数据,生成动态Web内容。
2) servlet的程序则有两个Java包组成,javax.servlet、 javax.servlet.http。其中javax.servlet中定义类和接口,javax.servlet.http定义了采用HTTP协议通信的HttpServlet类
3)所有的servlet程序都必须实现servlet接口,实现过程如下图所示:
1,servlet实例化到内存,调用init方法 ;
2,客户端请求和相应调用init方法;
3,释放内存,关闭服务。
servlet生命周期
Servlet程序执行过程就是一个生命周期即初始化阶段、运行阶段、销毁阶段。
1)初始化阶段
Servlet容器创建Servlet实例,并调用init()方法进行初始化。
初始化目的:Servlet对象在处理客户端请求前完成一些初始化的工作,建立数据库连接,获取配置信息等。
细节注意:1,Servlet容器复杂加载和实例化Servlet;2,创建一个Servlet对象,init()方法只被调用一次;3,初始化阶段会抛出ServletException异常,发生异常servlet不在被执行。
2)运行阶段
servlet对象接受请求,创建ServletRequest和ServletResponse对象,然后调用service方法。
细节注意:1,service()方法调用之前,init()方法必须成功执行即初始化成功;2,通过ServletRequest对象得到客户端的相关请求信息,ServletResponse设置相应信息。
3)销毁阶段
Servlet容器调用destroy()方法后,容器释放Servlet实例,垃圾回收机制处理。
细节注意:1,当Servlet容器终止运行,或重新加载新实例时,调用destroy()方法。
总结
在servlet生命周期中,servlet的初始化和销毁只发生一次,即init()方法和destroy()方法执行一次,servlet()方法被执行的次数取决于被访问的次数。整个过程就涉及到这三个方法。