Servlet的生命周期
Servlet是运行在服务器端的程序,它的运行状态由Servlet容器(简称容器)来维护。
通常,在容器收到客户对Servlet的请求时,容器会判断这个Servlet是否为第一次被访问,如果是第一次被访问,则会创建一个Servlet实例同时调用该实例的init()方法,进行初始化。
每个Servlet只会被创建一个实例,同时也只会被初始化一次。然后将这个实例一直保存在内存中,对所有的请求进行处理。默认的服务功能是调用与HTTP请求方法相应的do功能。同时,HttpServlet.service()方法会检查请求方法是否调用了适当的处理方法。
最后,当服务器关闭时,容器将会调用Servlet的destroy()方法清除Servlet实例。
我们下面用实验看一下这个过程:
实验验证
首先,我们写一个很简单的JSP程序,我们通过JSP页面来调用Servlet方法。我们在Tomcat安装目录下的webapps文件夹下新建一个ServletLife文件夹,进入该文件夹,写一个index.jsp文件,代码如下:
index.jsp
<%@ page contentType="text/html;charset=GBK" language="java" %>
<html>
<head>
<title>Show servlet life cycle</title>
</head>
<body>
<center>
<form action="ShowLifeCycle" name=form">
<input type="submit" value="SUBMIT"></form>
</center>
</body>
</html>
这是一段很简单的JSP程序,只为说明问题,整个程序只有一个提交表单的”submit”。
- 代码第8行指定表单提交给ShowLifeCyc