需要下载servlet api

步骤:

调用过程:

---------------------------------------------------------------------------------------

1        Servlet的生命周期

所谓xxx的生命周期,就是说xxx的出生、服务,以及死亡。Servlet生命周期也是如此!与Servlet的生命周期相关的方法有:

l  void init(ServletConfig);

l  void service(ServletRequest,ServletResponse);

l  void destroy();

1.1 Servlet的出生

服务器会在Servlet第一次被访问时创建Servlet,或者是在服务器启动时创建Servlet。如果服务器启动时就创建Servlet,那么还需要在web.xml文件中配置。也就是说默认情况下,Servlet是在第一次被访问时由服务器创建的。

而且一个Servlet类型,服务器只创建一个实例对象,例如在我们首次访问http://localhost:8080/helloservlet/helloworld时,服务器通过“/helloworld”找到了绑定的Servlet名称为cn.itcast.servlet.HelloServlet,然后服务器查看这个类型的Servlet是否已经创建过,如果没有创建过,那么服务器才会通过反射来创建HelloServlet的实例。当我们再次访问http://localhost:8080/helloservlet/helloworld时,服务器就不会再次创建HelloServlet实例了,而是直接使用上次创建的实例。

在Servlet被创建后,服务器会马上调用Servlet的void init(ServletConfig)方法。请记住, Servlet出生后马上就会调用init()方法,而且一个Servlet的一生。这个方法只会被调用一次。这好比小孩子出生后马上就要去剪脐带一样,而且剪脐带一生只有一次。

我们可以把一些对Servlet的初始化工作放到init方法中!

1.2 Servlet服务

  当服务器每次接收到请求时,都会去调用Servlet的service()方法来处理请求。服务器接收到一次请求,就会调用service() 方法一次,所以service()方法是会被调用多次的。正因为如此,所以我们才需要把处理请求的代码写到service()方法中!

1.3 Servlet的离去

  Servlet是不会轻易离去的,通常都是在服务器关闭时Servlet才会离去!在服务器被关闭时,服务器会去销毁Servlet,在销毁Servlet之前服务器会先去调用Servlet的destroy()方法,我们可以把Servlet的临终遗言放到destroy()方法中,例如对某些资源的释放等代码放到destroy()方法中。

1.4 测试生命周期方法

修改HelloServlet如下,然后再去访问http://localhost:8080/helloservlet/helloworld

public class HelloServlet implements Servlet {

public void init(ServletConfig config) throws ServletException {

System.out.println("Servlet被创建了!");

}

public ServletConfig getServletConfig() {return null;}

public void destroy() {

System.out.println("Servlet要离去了!");

}

public String getServletInfo() {return null;}

public void service(ServletRequest req, ServletResponse res)

throws ServletException, IOException {

System.out.println("hello servlet!");

}

}

在首次访问HelloServlet时,init方法会被执行,而且也会执行service方法。再次访问时,只会执行service方法,不再执行init方法。在关闭Tomcat时会调用destroy方法。

转载于:https://www.cnblogs.com/danyuzhu11/p/6232568.html

servlet 开发入门生命周期相关推荐

  1. Servlet和HTTP请求协议-学习笔记01【Servlet_快速入门-生命周期方法、Servlet_3.0注解配置、IDEA与tomcat相关配置】

    Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...

  2. 【JavaWeb】Servlet系列——响应HTML代码、Servlet连接数据库、IDEA开发Servlet程序、Servlet对象的生命周期、GenericServelet适配器模式

    文章目录 10 向浏览器响应一段HTML代码 11 在Servlet中连接数据库,怎么做? 12 在集成开发环境当中开发Servlet程序 12.1 集成开发工具很多,其中目前使用比较多的是: 12. ...

  3. Servlet开发入门

    Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想开发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完 ...

  4. 第一章:第1章 CRM核心业务介绍--概述,crm架构,公司组织结构,软件开发的生命周期,crm项目的核心业务介绍。...

    第一章:第1章 CRM核心业务介绍 1. 什么是crm项目: 1,CRM(Customer Relationship Management)客户关系管理是管理企业与客户之间关系的新型管理机制.终极目标 ...

  5. [JavaWeb-Servlet]Servlet中的生命周期方法(init,service,destroy)

    Servlet中的生命周期方法: @Override public void init(ServletConfig servletConfig) throws ServletException {}1 ...

  6. 鸿蒙应用开发--应用生命周期

    鸿蒙应用开发–应用生命周期 应用构成 Ability 界面 AbilitySlice 子界面 Component 组件 状态 初始状态 闲置状态 活跃状态 隐藏状态 切换方法 onStart()开始方 ...

  7. 嵌入式系统设计与开发的生命周期简析

    在实际开发产品的过程中,我们往往都会遵循一定的规则去进行开发,就如工人在砌墙之前,先画好图纸,然后评审,修改,再去建立整个楼房的框架,等整个框架都建立好了,那么就开始砌墙了,这个时候,工人只需要按照框 ...

  8. 小程序开发.uniapp.生命周期

    小程序开发.uniapp.生命周期 [内容介绍]: uniapp中生命周期相关内容 相关文章推荐: 标题 链接 <小程序开发.概述与环境搭建> https://blog.csdn.net/ ...

  9. 用SVN进行团队开发协作生命周期详解

    目录 前言 面向人群 背景 解决方案 团队开发生命周期 创建新项目 创建分支 切换分支 合并代码 正式版本发布 bug修复 结束语 前言 查找了SVN的相关知识无论是园子里还是百度都只有一些理论,而有 ...

最新文章

  1. java线程中等待_Java:线程中的Thread.sleep():没有等待
  2. 学python有哪些书推荐-Python 有哪些入门学习方法和值得推荐的经典教材?
  3. Docker实战(一)之使用Docker镜像
  4. 从入门到高阶,读懂机器学习需要哪些数学知识
  5. 近100年来全球20家顶尖公司成功原因揭秘
  6. Python正则表达式的7个使用典范
  7. java基础知识1---面向对象及final,finally,finalize区别
  8. idea报错解决:Cannot start compilation: the output path is not specified for module “XXX“.
  9. Feature selection
  10. python测试笔试题1
  11. SQL数值计算函数之round(X,D)
  12. windows上QT设置debugger的方法
  13. [转载]无线通信系统中的调制解调基础(一):AM和FM
  14. nodejs注册为windows服务实现开机自启动
  15. 算法竞赛入门经典(第2版)—索引
  16. Python 技术篇-pyHook键盘鼠标监听事件,监测鼠标键盘按键实例演示
  17. php mail cc,邮件cc是什么意思
  18. 企业选人的三个阶段和几个标准
  19. Git Commit 规范以及emoji 使用指南
  20. 网络流-一江春水向东流

热门文章

  1. C/C++面试之算法系列--去除数组中的重复数字
  2. C#中5中timer的比较
  3. 创业之路这样走 必死无疑
  4. 开发CISCO交换机管理软件
  5. ES6新特性_Promise实践练习-多个文件内容读取---JavaScript_ECMAScript_ES6-ES11新特性工作笔记028
  6. SpringCloud学习笔记013---Spring的@PostConstruct标签_初始化项目字典
  7. SpringCloud学习笔记003---服务提供者和服务消费者
  8. java在线支付---04_编写易宝支付的客户端加密工具类
  9. MYSQL启动后报:ERROR! The server quit without updating PID file错误的问题解决
  10. OpenCV 2.4.8 or OpenCV 2.4.9组件结构全解析