测试环境: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. html+css+javascript实现简易轮播图片

    html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <lin ...

  2. Worse Is Better

    最近做的几件事和最近刚读到这篇文章(http://www.jwz.org/doc/worse-is-better.html)让我重新认识了KISS和这个所谓的Worse-is-better原则. 软件 ...

  3. Java学习笔记:控制反转

    控制反转(Ioc)模式(又称DI:Dependency Injection)就是Inversion of Control,控制反转.在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在 ...

  4. select * from table 时间长

    优化中发现一个存储过程执行20秒通过profiler 抓取发现时间主要消耗在一个select * from 表,那么问题来了select几万数据竟然花了将近20秒? 问题排查清了程序前端使用了data ...

  5. 【Bugly 技术干货】Android开发必备知识:为什么说Kotlin值得一试

    1.Hello, Kotlin Bugly 技术干货系列内容主要涉及移动开发方向,是由 Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 1. ...

  6. Wix 安装部署教程(十) --来,用WPF做个漂亮的安装界面

    在上一篇中曾留下两个问题,.Net捆绑安装不触发以及路径选择的问题现在都已经解决,这段时间花的最多的地方还是WPF调样式上面,奈何WPF功力不够,暂时还是没有达到自己想要的效果.另外ViewModel ...

  7. silverlighter下MVVM模式中利用Behavior和TargetedTriggerAction实现文本框的一些特效

    在silverlight一般开发模式中,给文本框添加一些事件是轻而易举的,然而MVVM开发模式中,想要给文本框添加一些事件并非那么容易,因为MVVM模式中,只有ICommand接口,而且也只有Butt ...

  8. 《OOC》笔记(3)——C语言变长参数va_list的用法

    <OOC>笔记(3)——C语言变长参数va_list的用法 C语言中赫赫有名的printf函数,能够接受的参数数目不固定,这就是变长参数.C#里也有params这个关键字用来实现变长参数. ...

  9. AWS系列之三 使用EBS

    Amazon Elastic Block Store(EBS)可作为EC2实例的持久性数据块级存储.其具有高可用性和持久性的特点,可用性高达99.999%.给现有的EC2实例扩展新的存储块只需要几分钟 ...

  10. IBatisNet:让insert操作返回新增记录的主键值

    项目引用ibatis包: IBatisNet.Common.dll --文件版本1.6.2.0 IBatisNet.DataAccess.dll IBatisNet.DataMapper.dll 项目 ...