测试Servlet生命周期例子程序

写一个类TestLifeCycleServlet,生成构造器TestLifeCycleServlet();重写HttpServlet的doGet();重写GenericServlet的destroy();  init();  故意打乱顺序,看后台打印结果,看他们的执行顺序。

 1 package servlet_01;
 2
 3 import java.io.IOException;
 4
 5 import javax.servlet.ServletConfig;
 6 import javax.servlet.ServletException;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10
11 public class TestLifeCycleServlet extends HttpServlet{
12
13
14     public void destroy() {
15         System.out.println("destroy");
16     }
17
18
19     public void init(ServletConfig config) throws ServletException {  //ServletConfig保存的是servlet的配置信息(web.xml里的)
20         System.out.println("init");
21     }
22
23
24     public TestLifeCycleServlet() {
25         System.out.println("construstor");
26     }
27
28
29     protected void doGet(HttpServletRequest request, HttpServletResponse response)
30             throws ServletException, IOException {
31         System.out.println("doGet");
32     }
33
34
35 }

部署到tomcat,访问,然后刷新再访问一次。

可以看到,先调用构造器,构建出对象,然后是init();-->doGet();-->doGet();暂时还没调destroy();两个doGet();说明不管你访问多少次,只构建了一个对象,为你提供服务。J2EE的要求,Servlet就new一个,(省内存)。(有个SingleThreadModel接口,已经废弃了。如果你的Servlet实现了这个接口,每当一个请求过来,就new一个新对象。)在同一个server,同一个container里头,只有一个servlet。init只执行一次,第一次初始化的时候。当webapps退出的时候,调用destroy();

总结:

servlet生命周期

生命全过程:

1  加载:ClassLoader把你的class load进来。

2 实例化:new自己一个对象

3 初始化:调用init(ServletConfig)方法,(一般重写这个带参的,就调用这个)

4 处理请求:不断地处理请求,一般是对外的service  (对于HttpServlet来说就是doGet或者doPost)

5 退出服务:调用destroy();

**只有一个对象对外提供服务,再次访问的时候不会new重新的,不会调用init方法,不会的。

时间: 2024-07-31 09:02:36

测试Servlet生命周期例子程序的相关文章

测试Servlet生命周期学习笔记

测试环境:windows xp旗舰版 软件环境:myclipse8.5+tomcat7.0 ********************************************************************************* 操作方法: 1.新建工程: File-->new-->Java Project-->TestServlet(工程名称)-->Finish. 2.加载servlet-api.jar类包: TestServlet(右键)-->B

【Servlet】(1)Servlet简介、Servlet底层原理、Servlet实现方式、Servlet生命周期

2017年07月26日 00:16:04 YI_DIAN_DIAN 阅读数:5832 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_35415600/article/details/76100568 一.Servlet简介 1.Servlet定义: Servlet(Server Applet)是Java Servlet的简称,是为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容.

javaWeb中servlet开发(3)——Servlet生命周期

生命周期:是一个程序的存在周期,servlet由于是受容器的管理,所以容器来决定其生命周期 1.servlet生命周期 2.servlet生命周期对应的方法 3.servlet生命周期代码 public class LifeCycleServlet extends HttpServlet{ public void init() throws ServletException{ System.out.println("** 1.Servlet初始化 --> init()") ; }

Java Servlet系列之Servlet生命周期

Servlet生命周期定义了一个Servlet如何被加载.初始化,以及它怎样接收请求.响应请求,提供服务.在讨论Servlet生命周期之前,先让我们来看一下这几个方法: 1. init()方法 在Servlet的生命周期中,仅执行一次init()方法,它是在服务器装入Servlet时执行的,可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet.无论有多少客户机访问Servlet,都不会重复执行init(): 2. service()方法 它是Servlet的核心,每当

javaweb学习总结二十一(servlet开发入门、servlet生命周期以及调用过程)

一:servlet开发入门 servlet是sun公司一门开发动态web资源的技术,下面编写一个servlet入门程序: 1:在tomcat服务器webapps目录下新建firstServlet目录,在firstServlet目录下创建WEB-INF/classes目录 在classes目录下,写servlet程序. 类FirstServlet.java 1 /** 2 * 3 */ 4 package com.hlcui.servlet; 5 6 import java.io.IOExcept

JavaEE实战——Servlet入门、Servlet生命周期、绝对路径、ServletContext

前言 接下来的三篇博客我会分别介绍Servlet的以下三个方面: 1.Servlet程序编写 ----- 生命周期 2.ServletAPI Request Response 3.Cookie 和 Session Servlet的作用:Servlet 用来 动态web资源 开发 静态web资源 : 固定数据文件 动态web资源 : 通过程序动态生成数据文件 Servlet技术基于Request-Response编程模型 ---- HTTP协议也是基于请求响应 模型 * Servlet技术 用来

Servlet:从入门到实战学习(2)---Servlet生命周期

一个Servlet的完整的生命周期(从创建到毁灭)包括:init()方法,service()方法,doGet()方法,doPost()方法,destroy()方法 init()方法用于 Servlet 在服务器第一次启动时被加载时,init() 方法里可简单地创建或加载一些数据,一般用的不是很多. destroy() 方法在 Servlet 生命周期结束时被调用.用于让 Servlet 关闭数据库连接.停止后台线程等,执行类似的清理活动,一般用的也不是很多. service()方法是执行实际任务

Servlet生命周期工作原理

开发一个Servlet: 1.1 步骤: 1)编写java类,继承HttpServlet类 2)重新doGet和doPost方法 3)Servlet程序交给tomcat服务器运行!! 3.1 servlet程序的class码拷贝到WEB-INF/classes目录 3.2 在web.xml文件中进行配置 <!-- 配置一个servlet --> <!-- servlet的配置 --> <servlet> <!-- servlet的内部名称,自定义.尽量有意义 --

Web---演示servlet技术(servlet生命周期),解决中文乱码问题

本节讲解决中文乱码问题的4种方法. 还有更好的方法,也就是用过滤器,这里就不演示了,博主目前也不会~呼?(^?^*)~过段时间才会学. servlet生命周期演示: index.jsp: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra