版权声明:. https://blog.csdn.net/WildestDeram/article/details/87187950
Servlet生命周期
生命周期指创建到销毁的过程。
Servlet生命周期中有5个阶段:
1.装载-Web.xml:
当Tomcat启动时,会扫描工程中的Web.xml文件。在xml中对Servlet进行声明和绑定URL。注意:此时只是解析并不是创建,是知道Serlvet的存在
2.创建-构造函数
在第一次访问Servlet对应的URL时,Tomcat会对该Servlet类进行创建对象 ,并执行构造函数
3.初始化-init()
通过默认的init()方法对Servlet进行初始化,此时Servlet就创建成功了
4.提供服务-service()
当对Servlet进行访问时,就会提供访问服务,比如:doGet()、doPost()、service()。
5.销毁-destory()
当Tomcat重启或者关闭时,Servlet就会执行 destory()
init()和destory()方法可以通过eclipse来生成:Source——Override/Implement Methods——GenericServlet
其中init()选择使用init(ServletConfig)。
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/ServletDemo1/sape">
姓名:<input name="name"><br><br>
<input type="submit" value="提交">
</form>
</body>
</html>
Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>ServletDemo1</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>IN</servlet-name>
<servlet-class>javaDemo.NameDemo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>IN</servlet-name>
<url-pattern>/sape</url-pattern>
</servlet-mapping>
</web-app>
NameDemo.java
package javaDemo;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class NameDemo extends HttpServlet {
//构造方法
public NameDemo() {
System.out.println("正在创建NameDemo");
}
@Override //初始化方法
public void init(ServletConfig config) throws ServletException {
System.out.println("初始化NameDemo对象");
}
// service()方法
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("name");
//控制台输出
response.getWriter().println("<h1>"+name+"</h1>");
}
@Override //销毁
public void destroy() {
System.out.println("销毁Servlet对象");
}
}