servlet 开发入门生命周期
需要下载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 开发入门生命周期相关推荐
- Servlet和HTTP请求协议-学习笔记01【Servlet_快速入门-生命周期方法、Servlet_3.0注解配置、IDEA与tomcat相关配置】
Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...
- 【JavaWeb】Servlet系列——响应HTML代码、Servlet连接数据库、IDEA开发Servlet程序、Servlet对象的生命周期、GenericServelet适配器模式
文章目录 10 向浏览器响应一段HTML代码 11 在Servlet中连接数据库,怎么做? 12 在集成开发环境当中开发Servlet程序 12.1 集成开发工具很多,其中目前使用比较多的是: 12. ...
- Servlet开发入门
Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想开发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完 ...
- 第一章:第1章 CRM核心业务介绍--概述,crm架构,公司组织结构,软件开发的生命周期,crm项目的核心业务介绍。...
第一章:第1章 CRM核心业务介绍 1. 什么是crm项目: 1,CRM(Customer Relationship Management)客户关系管理是管理企业与客户之间关系的新型管理机制.终极目标 ...
- [JavaWeb-Servlet]Servlet中的生命周期方法(init,service,destroy)
Servlet中的生命周期方法: @Override public void init(ServletConfig servletConfig) throws ServletException {}1 ...
- 鸿蒙应用开发--应用生命周期
鸿蒙应用开发–应用生命周期 应用构成 Ability 界面 AbilitySlice 子界面 Component 组件 状态 初始状态 闲置状态 活跃状态 隐藏状态 切换方法 onStart()开始方 ...
- 嵌入式系统设计与开发的生命周期简析
在实际开发产品的过程中,我们往往都会遵循一定的规则去进行开发,就如工人在砌墙之前,先画好图纸,然后评审,修改,再去建立整个楼房的框架,等整个框架都建立好了,那么就开始砌墙了,这个时候,工人只需要按照框 ...
- 小程序开发.uniapp.生命周期
小程序开发.uniapp.生命周期 [内容介绍]: uniapp中生命周期相关内容 相关文章推荐: 标题 链接 <小程序开发.概述与环境搭建> https://blog.csdn.net/ ...
- 用SVN进行团队开发协作生命周期详解
目录 前言 面向人群 背景 解决方案 团队开发生命周期 创建新项目 创建分支 切换分支 合并代码 正式版本发布 bug修复 结束语 前言 查找了SVN的相关知识无论是园子里还是百度都只有一些理论,而有 ...
最新文章
- java线程中等待_Java:线程中的Thread.sleep():没有等待
- 学python有哪些书推荐-Python 有哪些入门学习方法和值得推荐的经典教材?
- Docker实战(一)之使用Docker镜像
- 从入门到高阶,读懂机器学习需要哪些数学知识
- 近100年来全球20家顶尖公司成功原因揭秘
- Python正则表达式的7个使用典范
- java基础知识1---面向对象及final,finally,finalize区别
- idea报错解决:Cannot start compilation: the output path is not specified for module “XXX“.
- Feature selection
- python测试笔试题1
- SQL数值计算函数之round(X,D)
- windows上QT设置debugger的方法
- [转载]无线通信系统中的调制解调基础(一):AM和FM
- nodejs注册为windows服务实现开机自启动
- 算法竞赛入门经典(第2版)—索引
- Python 技术篇-pyHook键盘鼠标监听事件,监测鼠标键盘按键实例演示
- php mail cc,邮件cc是什么意思
- 企业选人的三个阶段和几个标准
- Git Commit 规范以及emoji 使用指南
- 网络流-一江春水向东流
热门文章
- C/C++面试之算法系列--去除数组中的重复数字
- C#中5中timer的比较
- 创业之路这样走 必死无疑
- 开发CISCO交换机管理软件
- ES6新特性_Promise实践练习-多个文件内容读取---JavaScript_ECMAScript_ES6-ES11新特性工作笔记028
- SpringCloud学习笔记013---Spring的@PostConstruct标签_初始化项目字典
- SpringCloud学习笔记003---服务提供者和服务消费者
- java在线支付---04_编写易宝支付的客户端加密工具类
- MYSQL启动后报:ERROR! The server quit without updating PID file错误的问题解决
- OpenCV 2.4.8 or OpenCV 2.4.9组件结构全解析