分为启动(加载web应用的有关数据,创建ServletContext对象,对Filter和一些Servlet初始化)、运行时(主要是Servlet容器调用service(方法))和终止(释放资源)三个阶段。

该过程可通过Tomcat的管理应用来控制应用的生命周期:

《Tomcat与javaweb开发技术详解》

Reload操作: 相当于先stop当前web应用,再start。

Undeploy操作: 从Tomcat卸除,web文件被删除。

## Servlet生命周期

就是Servlet容器控制的Servlet接口提供的init、service、destroy三个方法。

在Servlet的生命周期中,初始化和销毁只会发生一次,即init()和destroy()方法只会被Servlet容器调用一次。service()取决于客户端请求的次数。

实践验证:写一个继承于GenericServlet类的xxxservlet,设置三个全局变量分别在三个方法中打印,看结果,即可。

并且,可以有多个xxxservlet对象对应同一个xxxServlet类,尽管类代码一模一样,但属于不同的servlet,互相没有关系!!

《Tomcat与javaweb开发技术详解》

——————

## ServletContext与Web应用范围

Servlet容器在启动一个web应用时,会为它创建唯一的ServletContext对象,终止时销毁。

因此,ServletContext对象与web应用具有同样的生命周期。而且,ServletContext对象可以被web应用中的所有web组件共享。因此,可以利用该对象来存取web应用范围内的共享数据(可以是任意类型)。

《Tomcat与javaweb开发技术详解》

实践验证: 实现web统计访问次数的功能。先写一个Counter类,将其放入servletContext对象。(这里有一种技巧,就是怎么放??你总不能每次请求都放一次吧!所以,先从servletContext获取该对象,如果为null则将其放入,所以第二次以后都只是取,不会再执行放入的逻辑了,if不符合了啊,当且仅当第一次才符合)。

java web 生命周期_JavaWeb的生命周期相关推荐

  1. java web 添加超链接_Javaweb 超链接后显示问题

    java web 项目发送带有超链接文本邮件问题 今天做java web项目的时候遇到了一个很想不通的或者说很奇葩的问题, 小编首先需要设置邮件内容的格式为:html 其次在内容中加上不要太乖,不想做 ...

  2. java web架构配置_javaweb(1) tomcat配置和web程序结构

    一.tomcat配置 为方便在cmd中直接启动tomcat服务器,可以像其他程序(如jdk)一样配置tomcat. 1.CATALINA_HOME = D:\java\apache-tomcat-8. ...

  3. Java Web 学习笔记3 Servlet生命周期

    https://www.bilibili.com/video/av31486135/?spm_id_from=333.788.videocard.0 环境:Eclipse 2019-06 (4.12. ...

  4. java web容器原理_javaWeb工作原理

    http:无状态协议,客户端和服务器之间不需要建立持久的连接,通信完就断开. http的工作流程: 1.客户端和服务器建立连接 2.客户端发送请求 3.服务器响应内容 4.服务器关闭连接,客户端解析服 ...

  5. java web传递参数_Javaweb的八种传值方式

    1.表单提交 html自带的from方法,简单易懂,便于操作,依靠于标签中的type="submit"进行表单传输,或者根据js进行控制提交表单.其中由method属性决定以pos ...

  6. java web 自定义标签_JavaWeb学习——自定义标签

    自定义标签 一.自定义标签概述 使用标准JSP访问.操作JavaBean,是实现展现(HTML)与业务实现(Java代码)分离的第一步.然而,标准方法功能不够强大,以至于开发者无法仅仅使用它们开发应用 ...

  7. java web 启动顺序_JavaWeb开发Servlet过滤器链执行顺序详解

    ***第一份手记*** 下午时间观看老师讲的视频,自己动手实践练习得出的结论,讲其分享出来给大家,不喜勿喷,有那里说的不对讲得不好还请大家一一指出,谢谢! 过滤器链的执行顺序是服务器按照web.xml ...

  8. java web编写计算器_javaWeb 使用 jsp 和 javaBean 实现计算器功能

    jsp 和 javaBean 实现计算器功能 try { calculator.calculate(); } catch (Exception e) { out.write(e.getMessage( ...

  9. java web 开发基础_javaweb开发基础(一)

    001使用MyEclispe建立web工程 我的建立在D盘WebAPP这个目录下 在myeclipse中启动Tomcat,在浏览器中输入http://localhost:8080/,如果不出意外的话, ...

最新文章

  1. 深入卷积神经网络背后的数学原理
  2. leetCode题解之反转二叉树
  3. spring java配置_Spring基于java的配置
  4. 参数整定临界比例度实验_PID理解起来很难?系统讲解PID控制及参数调节,理论加实际才好!...
  5. Asp.net mvc 知多少(六)
  6. Django博客--5.让博客支持 Markdown 语法和代码高亮
  7. Unreal Engine 4 中的 UI 优化技巧
  8. python中valueerror是什_Python:ValueError和Exception的区别?
  9. 原码、反码、补码,计算机中负数的表示
  10. 复变函数在计算机科学中的应用,051复变函数与实变函数
  11. 安卓ASO怎么做?有哪些工具平台?安卓aso工具有哪些
  12. 旷世英才遭天妒——拉马努金
  13. robots.txt存放的位置robots.txt文件的作用及写法 (搜索引擎)
  14. 计算机专业英语字典aqq,最新的英语qq网名
  15. vue 开发的微信公众号网页 添加背景音乐,以及音乐图标旋转动画
  16. Composer 简介和基本用法
  17. Coursera吴恩达机器学习week4笔记
  18. 2021牛客寒假算法基础集训营4 F. 魏迟燕的自走棋
  19. 微生物组测序方法比较
  20. YTU oj 3631 树的高度

热门文章

  1. C#设计模式之17-中介者模式
  2. windows10中屏幕键盘 vs 触摸键盘
  3. xargs命令和find的-exec
  4. php 获取当前页面url_PHP获取URL –如何获取当前页面的完整URL
  5. 统计相关系数r与r2的区别_什么是相关系数? 统计解释中的r值
  6. javaweb解决编码问题_学习编码? 首先,学会解决问题。
  7. 软件测试测试 python_Python测试简介
  8. swift 富文本编辑_如何使用Swift构建协作式文本编辑器
  9. 可以获取python整数类型帮助的语句_Python入门第二课--数据类型、条件语句
  10. 程序员如何 10 分钟用 Python 画出蒙娜丽莎?