【drp 9】Servlet生命周期

一、基本概念

Servlet(Server Applet):全称Java Servlet,是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。


Servlet生命周期:

servlet有良好的生存期定义,包括加载,实例化,初始化,处理请求以及服务结束!这个生存周期分别由java.servlet.Servlet接口的init,service和destroy方法表达!


1,第一个到服务器的HTTP请求被委派到servlet容器。
2,servlet容器装载,然后再调用这个servlet的service()方法。
3,然后servlet容器产生多个线程,每个线程执行一个单一的servlet实例的service()方法的处理多个请求。


二、主要方法概述

2.1,init()

<span style="font-family:KaiTi_GB2312;font-size:18px;">public void init() throws ServletException {
  // Initialization code...
}</span>
Servlet被服务器实例化后,容器运行其init方法,这个方法只运行一次,作用于servlet整个生命周期!

2.2,service()

<span style="font-family:KaiTi_GB2312;font-size:18px;">public void service(ServletRequest request, 
                    ServletResponse response) 
      throws ServletException, IOException{
}</span>

service()方法是主要的方法来执行实际的任务。请求到达时,运行servlet的service方法检查HTTP请求类型(GET,POST,PUT,DELETE等),并调用doGet,doPost方法,doPut,doDelete,等适当的方法。由于service是调用其他方法,所以,在实际运用的时候,主要重写相应的doGet、doPost方法等。什么时候重写doGet或是doPost,请看博客: [drp 8]get和post的区别,以及乱码问题的解决

2.3,destroy()

<span style="font-family:KaiTi_GB2312;font-size:18px;">public void destroy() {
    // Finalization code...
  }</span>
这个方法,是servlet生命周期的最后一步,在整个生命周期中只执行一次,在这个方法中,可以做关闭数据库连接,停止后台线程等释放内存类似的工作。


三、总结

对于servlet生命周期的理解,其实感觉和平常用的try{ }catch{ }finally{ }代码段很像,在我们用try的时候,会在之前声明一些变量或者赋值等,算是一种前期准备,这个就相当于init初始化方法,然后,我们在try语句段去执行我们真正想要执行的方法,也就是servlet里面的service方法。最后捕捉完异常,我们会用finally语句段去做最后的处理,如:关闭数据库,事务回滚等,这就等同于servlet的destroy方法。

对于基础知识的总结学习,还任重而道远!


原文地址:https://www.cnblogs.com/hhx626/p/6010328.html