测试环境:windows xp旗舰版

软件环境:myclipse8.5+tomcat7.0

*********************************************************************************

操作方法:

1.新建工程;

File——>new——>Java Project——>TestServlet(工程名称)——>Finish.

2.加载servlet-api.jar类包;

TestServlet(右键)——>Build Path——>Configure Build Path——>Library

——>Add External JAR Selection——>(浏览在tomcat的lib目录下找到servlet-api.jar选中后点击打开)。——> OK

3.新建名为“TestlLifeCycleServlet”的class类。

4.重写doGet方法:

5.修改下重写方法的参数,以及方法并自己写一个构造方法:

6.重写TestlLifeCycleServlet的init(ServletConfig)方法,和重写doGet方法一致:

7.修改重写的TestlLifeCycleServlet的init(ServletConfig)方法中的参数和方法,

之后再重写TestlLifeCycleServlet的destroy()方法.

8.最后完成代码如下:

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 TestlLifeCycleServlet extends HttpServlet { //重写销毁方法
public void destroy() {
System.out.println("destroy"); } //重写初始化方法
public void init(ServletConfig config) throws ServletException {
System.out.println("init"); } //自己构造的方法
public TestlLifeCycleServlet(){
System.out.println("constructor!");
} //重写的doGet方法
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doGet!"); } }

注:现在要通过测试这四种方法的执行顺序,来间接测试Servlet生命周期。

9.部署servlet:

(1.)复制TestlLifeCycleServlet的class文件到D:\Program Files\apache-tomcat-7.0.54\webapps\test\WEB-INF\classes目录下。

(具体方法见测试Servlet学习笔记博文,这里略去。)

(2.)配置web.xml文件如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<!--第一次的配置-->
<servlet>
<servlet-name>HW</servlet-name>
<servlet-class>HelloWorldServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>HW</servlet-name>
<url-pattern>/ab</url-pattern>
</servlet-mapping>

<!--这一次的配置-->
<servlet>
<servlet-name>TestlLifeCycleServlet</servlet-name>
<servlet-class>TestlLifeCycleServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>TestlLifeCycleServlet</servlet-name>
<url-pattern>/TestlLifeCycleServlet</url-pattern>
</servlet-mapping> </web-app>

10.tomcat后台如果出现

Roleading Context withname [/test] is to completed

说明配置成功!

11.运行后结果如下:

三个方法调用顺序是先调用了自己构造的方法,其次是初始化方法,然后是doGet方法。destroy方法还没有被调用。

12.再次刷新页面,发现只重新调用了doGet方法。

13.书上说,destroy()在webapp退出的时候被调用

退出时观看后台,结果后台关闭太快,根本来不及看到。

注意:我的tomcat7.0,在目录D:\Program Files\apache-tomcat-7.0.54\bin下有批处理:

shutdownup.bat

14.因此先关闭tomcat服务,输入命令:shutdownup

然后输入命令:进入调试模式试试。

开始——>运行——>cmd——>catalina debug.

输入命令:run

15.重新访问页面,

输入命令?查看退出命令是什么。

退出命令是exit或者quit。

输入命令:quit。

不行,直接退出了,根本无法看到。

还有一种方法,将destroy方法修改成写一个文件记录下。

这种方法由于时间关系,先不尝试,有时间再尝试。

**************************************************************************

15.现在先总结下:

servlet的生命周期生命全过程:

1.加载:ClassLoader

2.实例化:new 新的对象,只调用一次,仅仅new一个对象

3.初始化:init(ServletConfig)

注释:该方法只执行一次,第一次初始化时被调用,ServletConfig内保存web.xml配置信息

4.处理请求: service doGet doPost5.退出服务:destroy()在webapp退出的时候被调用

*************************************************************************

交流即分享,分享才能进步!

博文中如有不当之处,欢迎各位前辈指出。

测试Servlet生命周期学习笔记的更多相关文章

  1. 测试Servlet生命周期例子程序

    写一个类TestLifeCycleServlet,生成构造器TestLifeCycleServlet();重写HttpServlet的doGet();重写GenericServlet的destroy( ...

  2. JaveWeb学习之Servlet(一):Servlet生命周期和加载机制

    原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2018-07-22/19.html 作者:夜月归途 出处:http://www.guitu ...

  3. 回顾servlet生命周期(代码测试),读取初始化参数

    servlet生命周期 为简洁,本例使用注解方式来测试,代码部分很简单,只需要新建一个serlet,继承自HttpServlet,重写init,doGet,doPost,destory方法即可,使用注 ...

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

    一:servlet开发入门 servlet是sun公司一门开发动态web资源的技术,下面编写一个servlet入门程序: 1:在tomcat服务器webapps目录下新建firstServlet目录, ...

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

    一个Servlet的完整的生命周期(从创建到毁灭)包括:init()方法,service()方法,doGet()方法,doPost()方法,destroy()方法 init()方法用于 Servlet ...

  6. Servlet 3.1学习笔记

    Servlet 3.1学习笔记 参考文档 Servlet 3.1标准 什么是 Servlet ? Servlet 是基于 Java 平台的 Web 组件,由一个容器管理,能够生成动态内容. 什么是 S ...

  7. Servlet 生命周期、工作原理

    按照单例的编码规则,Servlet本身只是一个Java,结构并不是单例结构. 只是Web容器在维护这些Servlet的时候只给创建一个实例存在JVM中,用户请求服务时,服务器只调用它已经实例化好的Se ...

  8. 【drp 9】Servlet生命周期

    一.基本概念 Servlet(Server Applet):全称Java Servlet,是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容.狭义的Servlet ...

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

    一.Servlet简介 1.Servlet定义: Servlet(Server Applet)是Java Servlet的简称,是为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交 ...

随机推荐

  1. pthread——pthread_cleanup

    Pthread_cleanup用于注册线程清理函数,注册的清理函数将在线程被取消或者主动调用pthread_exit时被调用:     一个简单的示例: #include <pthread.h& ...

  2. Linux计划任务crontab运行脚本不正确的问题

    问题的由来 写好的程序希望在崩溃之后能够自启动,于是利用linux的crontab功能,添加一个计划任务,每分钟执行一个脚本查看需要监控的进程是否还在,如果不在则启动之,否则不做任何事情.这么一个简单 ...

  3. Javascript-URL帮助类

    很久以前写的一个js关于url的帮助类,今天又翻出来了.贴一下源码,做一个简单的教程. 作用 这是一个关于urlquery的一个帮助类,我们在前端编程的时候经常涉及到操作并重组url的情况,在参数比较 ...

  4. SQL语言分类

    SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML, 数据定义语言DDL,数据控制语言DCL. 1 数据查询语言DQL数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHER ...

  5. [教程]怎么用百度云观看和下载"磁力链接"无需下载直接观看.

    1, 打开网址 http://okbt.net/  输入你想要看的电影名字, 点搜索,鼠标右键点击拷贝磁力链接.或者 电脑装了迅雷的话.可以直接点击.用迅雷下载. 磁力链接都是这种格式的.例: mag ...

  6. .net core 中环境变量的配置

    配置文件: Properties目录下的launchSettings.json IISExpress配置 "ASPNET_ENV": "EnvironmentOne&qu ...

  7. 使用hexo+github搭建免费个人博客详细教程

    [TOC] 本文目录(注意无法点击): 前言 体验更加排版请访问原文链接:http://blog.liuxianan.com/build-blog-website-by-hexo-github.htm ...

  8. 22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表。然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法showB输出大写的英文字母表。最后编写主类C,在主类的main方法 中测试类A与类B。

    22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表.然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法sh ...

  9. Fedora 24 install MySQL

    Background I have work with mysql on the fedora OS, but currently fedora have no support mysql inste ...

  10. Atitit  ocr识别原理 与概论 attilax总结

    Atitit  ocr识别原理 与概论 attilax总结 1.1. Ocr的过程与流程1 1.2. OCR不同技术细分略有不同,但大概原理是一样的. 即主要技术过程是:二值化(又叫归一化)----- ...