1.servlet的生命周期

主要有三个方法:

  1. init()初始化阶段
  2. service()处理客户端请求阶段
  3. destroy()终止阶段

初始化阶段:

Servlet容器加载Servlet,加载完成后,Servlet容器会创建一个Servlet实例并调用init()方法,init()方法只会调用一次
Servlet容器会在一下几种情况装载Servlet:

Servlet容器启动时自动装载某些servlet,实现这个需要在web.xml文件中添加1
在Servlet容器启动后,客户首次向Servlet发送请求
Servlet类文件被更新后,重新装载

处理客户端请求阶段:

每收到一个客户端请求,服务器就会产生一个新的线程去处理。
对于用户的Servlet请求,Servlet容器会创建一个特定于请求的ServletRequest和ServletResponse。
对于tomcat来说,它会将传递来的参数放入一个HashTable中,这是一个String–>String[]的键值映射

终止阶段:
当web应用被终止,或者Servlet容器终止运行,或者Servlet重新装载Servlet新实例时,Servlet容器会调用Servlet的destroy()方法

2.servlet的工作原理

客户发送一个请求,Servlet调用service()方法对请求进行响应,service()方法会对请求的方法进行匹配,进入相应的逻辑层,完成请求的响应。

但是Servlet接口和GenericServlet接口中没有doGet(),doPost()等方法,HttpServlet中定义了这些,但是返回的都是Error信息,所以每次定义Servlet都要重写这些方法。

Sertvlet和GenericServlet是不特定于任何协议的,而HttpServlet是特定于Http协议的,所以HttpServlet中的service()方法中将ServletRequest,ServletResponse强转为HttpRequest和HttpResponse,最后调用自己的service方法去完成响应。

servlet生命周期 1相关推荐

  1. Servlet生命周期与工作原理

    Servlet生命周期分为三个阶段: 1,初始化阶段  调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...

  2. Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】...

    tags: Servlet 什么是Serlvet?# Servlet其实就是一个遵循Servlet开发的java类.Serlvet是由服务器调用的,运行在服务器端. 为什么要用到Serlvet? 我们 ...

  3. 测试Servlet生命周期学习笔记

    测试环境:windows xp旗舰版 软件环境:myclipse8.5+tomcat7.0 ****************************************************** ...

  4. Servlet 生命周期介绍

    在面试的时候. 有时会被问到这个问题: 请描述一下Servlet的生命周期. 其实面试官就是想问你1个Servlet何时被创建, 何时被调用等.... 本文就是详细解答这个问题的. 总体流程图 上面的 ...

  5. Servlet底层原理、Servlet实现方式、Servlet生命周期

    Servlet简介 Servlet定义 Servlet是一个Java应用程序,运行在服务器端,用来处理客户端请求并作出响应的程序. Servlet的特点 (1)Servlet对像,由Servlet容器 ...

  6. 测试Servlet生命周期例子程序

    写一个类TestLifeCycleServlet,生成构造器TestLifeCycleServlet();重写HttpServlet的doGet();重写GenericServlet的destroy( ...

  7. Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】

    什么是Servlet? Servlet其实就是一个遵循Servlet开发的java类.Servlet是由服务器调用的,运行在服务器端. 为什么要用到Servlet? 我们编写java程序想要在网上实现 ...

  8. 【Servlet】Servlet生命周期

    Servlet生命周期是指Servlet实例从创建到响应客户请求,直至销毁的过程. Servlet程序本身不直接在Java虚拟机上运行,由Servlet容器负责管理其整个生命周期. Servlet生命 ...

  9. Web容器和Servlet生命周期

    为何需要Web容器 Web服务器本身主要用于支持http协议,包括监听和相应http请求.web服务器一般处理静态的请求,如文件系统中的静态文件.web容器则是为web相关的组件提供运行环境,可以从' ...

  10. Servlet→简介、手动编写一个Servlet、使用MyEclipse编写一个Servlet、Servlet生命周期、路径编写规范、初始化参数、MVC设计模式

    手动编写一个Servlet 使用MyEclipse编写一个Servlet Servlet生命周期 路径编写规范 初始化参数 MVC设计模式 企者不立:跨者不行. 自见者不明: 自是者不彰: 自伐者无功 ...

最新文章

  1. awaitUntil() 方法的使用
  2. Python教程:hashlib加密
  3. leetcode 507. 完美数(Java版)
  4. 网络流-SAP算法模板
  5. 1.5 编程基础之循环控制(45题)
  6. HTML+CSS---定位(相对定位--绝对定位--固定定位--设置元素的层叠顺序)---表单---设置光标样式---透明度(opacity属性定义元素的不透明度--IE的半透明滤镜)---外边线
  7. mysql 5.5 编译安装教程,Centos6下mysql 5.5.* 编译安装步骤详解
  8. 华为交换机STP的配置实例
  9. 因果推断综述及基础方法介绍(一)
  10. vlookup+match高亮显示行
  11. 【红茶原创】-MRTG Install In RedHat AS4
  12. NOIP2017题解
  13. 2019软件测试最新视频教程大合集汇总
  14. IP-guard全部22个功能模块简介
  15. 又一个同学被快手挂掉了
  16. 网易或入股MSN中国 门户再现竞争新局
  17. 005-汇编加法指令ADD
  18. 天堂2mysql_天堂2单机版 L2J-som-rotm 安装全过程及常用工具 一步到位
  19. 面试造火箭系列,栽在了cglib和jdk动态代理
  20. [SQLite]浅析其一——SQLite数据库简介

热门文章

  1. [JZOJ1320] 【Usaco2009 gold 】拯救奶牛
  2. winXP和win2003双系统下启动NTDETECT错误解决方法
  3. 实现echarts图多个legend图例和自定义legend中字体颜色
  4. bzoj 2827 千山鸟飞绝
  5. golang对比python
  6. Linux中etc目录etc是什么单词的缩写
  7. oracle datamodeler64,Toad Data Modeler6免费版
  8. Qt实现读取BIN文件
  9. 公布网贷者“黑名单” 涉嫌侵犯个人隐私
  10. c++ 求N个数的最大公约数和最小公倍数