上一节我们学习了快速入门,

但是里面的问题是ServletDemo1里面既没有创建对象,又没有写方法,竟然就被执行了,为什么呢?

我们来分析一下Sevlet的执行原理

1.当服务器接收到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径

2.查找web.xml文件,是否有对应的<url-pattern>标签体内容

3.如果有,则再找到对应的<servlet-class>全类名

4.tomcat服务器,第一步将字节码文件加载进内存,并且创建其对象

5.调用其方法

至于里面的<servlet-name>只是为了对应名字可以互相匹配

Servlet中的生命周期:

1.被创建:执行init方法,只执行一次

疑问:默认情况下,第一次被访问时,Servlet被创建

可以配置执行Servlet的创建时机

在<servlet>标签下配置

修改为-5,这时候再次启动服务器,服务器并没有init.....出现,这说明

Servlet的init方法,只执行一次,说明一个Servlet在内存中只存在一个对象 ,说明Servlet是单例的

多个用户同时访问时,可能存在线程安全问题

解决:尽量不要在Servlet中定义成员变量。即使定义了成员变量,也不要对其修改值(赋值)

2.提供服务:执行service方法,执行多次

每次访问Servlet时,Service方法都会被调用一次

3.被销毁:执行destroy方法,执行一次

Servlet被销毁时执行。服务器关闭时,Servlet被销毁

只有服务器正常关闭时,才会执行destroy方法

那么问题来了,Servlet先销毁还是destroy先执行呢?

结论是,先执行destroy方法,一般用于释放资源

JAVAWEB入门之Sevlet的执行原理相关推荐

  1. Servlet的快速入门以及执行原理

    Servlet server applet 概念:运行在服务器端的小程序. Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则. 将来我们自定义一个类,实现Servl ...

  2. JAVAweb入门基础

    1.JAVAweb开发原理 2.web服务器 2.1.技术服务 ASP(微软 国内最早流行;在HTML中嵌入了VB的脚本,ASP+Com;在ASp开发中,基本一个页面都有几千行的业务代码,页面及其混乱 ...

  3. javaweb 入门到精通ServletJSP;-王磊-专题视频课程

    javaweb 入门到精通Servlet&JSP;-7367人已学习 课程介绍         JSP语法,Tomcat服务器应用,状态管理,cookie.session,EL+JSTL,Se ...

  4. JavaWeb入门篇(6) 实现字符过滤器 解决全局字符乱码 实现模拟权限拦截

    JavaWeb 入门篇(6.1) 过滤器 实现字符过滤器 实现模拟权限拦截 Filter(过滤器) 概述 过滤器是一个对象,它对对资源(Servlet或静态内容)的请求或对资源的响应或两者都执行过滤任 ...

  5. 正则表达式引擎执行原理——从未如此清晰!

    目前越来越多的网站.编辑器.编程语言都已支持一种叫"正则表达式"的字符串查找"公式",有过编程经验的同学都应该了解正则表达式(Regular Expressio ...

  6. 解释java程序所使用的命令是,Java程序的执行原理以及解释说明

    在初学Java的时候,我们安装完Java的开发环境后,就可以通过记事本等编辑工具编写程序了.推荐在Windows操作系统中使用EditPlus工具进行编写.由于我使用的是Mac OS,所以,我使用Su ...

  7. javaweb入门笔记(5)-cookie和session

    2019独角兽企业重金招聘Python工程师标准>>> javaweb入门笔记(5)-cookie和session 标签: javaweb [TOC] Cookie是客户端技术:Se ...

  8. Animation动画概述和执行原理

    动画入门和进阶文章列表: Animation动画概述和执行原理 Android动画之补间动画TweenAnimation Android动画之逐帧动画FrameAnimation Android动画之 ...

  9. java服务器登录系统,JavaWeb入门登陆注册系统

    JavaWeb入门先从登陆注册系统开始作起. 个人这个入门教程特别简单你们按步骤作就行必定没有问题的!源码在下面一个字很多你们认真仔细学 一.须要预先了解的几个基本概念,JSP文件和HTML文件还有X ...

最新文章

  1. Keras运行速度越来越慢的问题
  2. 800名科学家Nature联名发文主张废除p值!
  3. 原创 | 常见损失函数和评价指标总结(附公式代码)
  4. Tomcat常见问题 (配置)及解决方法
  5. 【Groovy】Groovy 脚本调用 ( Groovy 脚本编译 | Groovy 脚本字节码文件分析 )
  6. 动态链表增删改查及排序功能
  7. Error response from daemon: manifest not found.
  8. java反编译,eclipse支持插件
  9. linux红帽6架设apache,linux Redhat6.5 中 编译安装apache
  10. 使用RDLC报表(三)--向RDLC报表传入参数
  11. idea隐藏 .iml 和 .idea 等自动生成文件
  12. 优先级反转实验,使用信号量实现【RT-Thread学习笔记 5】
  13. 互联网搜索的哪些环节 机器学习_什么是机器学习?有哪些分类?到底有什么用?终于有人讲明白了...
  14. java获取http文件大小_Java开发网 - 关于通过HTTPUrlConnection获取一个文件的大小?...
  15. 马健计算机博士,马健-中国科学院大学-UCAS
  16. Android小项目--2048小游戏,flutter人脸识别插件
  17. Python 3.9 新特性速览 - Ricequant米筐量化
  18. JAVA用OpenCV做AI图片处理
  19. manifestintert-filter详解
  20. CentOS8下Mosquitto安装使用指南

热门文章

  1. python 加密方法总结
  2. C#语言之“中英文混合字符串对齐”的方法
  3. Unity(四):使用场景Ⅰ:建立类型映射
  4. 2010年 Web的五项技术和五个趋势
  5. .net打包自动安装数据库
  6. 园子里关于罗辑树与视觉树的文章
  7. python-主成分分析-降维-PCA
  8. 数据库系统原理复习提纲
  9. python的神经网络编程_Python神经网络编程 第二章 使用Python进行DIY
  10. java简单小项目_Java简易抽奖系统小项目