Servlet生命周期

Servlet概述

什么是Servlet?

可以看作是是一个接口,一个容器,一个规范(sun公司并没有去实现它),它的实现就是由各大服务器厂商(Tomcat)去实现;

Tomcat是一个javaweb服务器,也是一个Servlet容器;

Servlet容器是管理所有Servlet对象的创建,运行,销毁的容器。而Servlet对象也只有才Servlet容器中才能使用。所以如果我们写了一个Servlet, 那么一定要记住,把这个Servlet交给Tomcat去管理;
注意:早期的web服务器只能处理静态资源,如果要与后台Java代码进行交互,就需要Servlet容器;

Servlet生命周期

创建Servlet,初始化,执行init()方法(执行一次)

接收参数,相应请求 调用service方法(执行多次)

关闭服务,调用destroy()方法结束(执行一次)

最后,Servlet 由JVM 的垃圾回收器进行垃圾回收

Demo

下面用一段代码来测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package com.ifueen.classtest;

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;

/**
*测试Servlet的生命周期
*
*/
public class LifeServlet extends HttpServlet{
ServletConfig config;
public LifeServlet() throws ServletException {
// TODO Auto-generated constructor stub
System.out.println("开始实例化Servlet");
}
@Override
public void init() throws ServletException {
// TODO Auto-generated method stub
System.out.println("初始化Servlet");
}
@Override
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
this.config = config;
}

@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("开始服务...");
System.out.println(config.getServletName());
System.out.println(config.getInitParameter("encoding"));
}
@Override
public void destroy() {
// TODO Auto-generated method stub
System.out.println("服务结束,销毁Servlet...");
}
}

web.xml配置

1
2
3
4
5
6
7
8
9
10
11
12
13
<servlet>
<servlet-name>ee</servlet-name>
<servlet-class>com.ifueen.classtest.LifeServletd</servlet-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<!-- <load-on-startup>1</load-on-startup> -->
</servlet>
<servlet-mapping>
<servlet-name>ee</servlet-name>
<url-pattern>/life</url-pattern>
</servlet-mapping>
❤赏点钱让我买杯快乐水8❤