Servlet应用开发接口:

javax.servlet.Servlet:

  • init()方法:调用在构造方法之后,在service方法之前;
  • service()方法:调用此方法允许Servlet响应请求,在Servlet成功初始化之前无法调用;
  • destroy()方法:当一个Servlet被从服务中去除时,Servlet会调用此方法。当这个对象service()方法所有的线程未全部退出或者被容器认为发生超时操作时,此方法不会调用
  • getServletConfig()方法:get 一个 ServletConfig,
  • getServletInfo()方法:允许Servlet向主机的Servlet运行提供有关信息

Servlet生命周期:

  1. 客户端发送请求
  2. Servlet容器解析请求
  3. 创建Servlet实例
  4. 调用init方法
  5. 调用service方法
  6. 输出响应信息
  7. 返回响应
  8. 调用destory方法

第一次访问Servlet时:

  会调用servlet的构造方法,调用init()在一个Servlet的生命周期中只执行一次

在服务器启动加载网站是:

  会调用service方法

具体什么时候加载需要通过web.xml配置文件中对应servlet设置项<load-on-startup>节点进行设置:

1 load-on-startup标记容器是否在启动的时候实例化并调用其init()方法的优先级。
2 它的值表示servlet应该被载入的顺序
3 当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;
4 如果值小于0或未指定时,则表示只有在第一次请求的容器才在该servlet调用初始化函数
5 正值越小,servlet的优先级越高,应用启动时就越先加载。
6 值相同时,容器就会自己选择顺序来加载。

load-on-startup

Servlet在什么时候被销毁:

  服务器关闭;更新、停止web模块的时候;由Servlet容器根据情况(destory方法)

destory()方法:

  在Servlet实例被销毁之前调用,在一个Servlet的生命周期中只执行一次

Servlet生命周期可以分为四个阶段(总结):

  1.   加载和实例化:调用构造方法,由servlet容器完成
  2.   初始化:调用init方法
  3. 处理客户请求:service方法(doGet、doPost)
  4. 销毁:销毁之前调用destroy方法

ServletConfig包含web程序部署描述符中定义的参数,servletConfig是由Servlet容器实例化

每个Web应用启动后,Servlet容器都会创建唯一的一个ServletContext对象,该对象包含整个web程序的信息

Servlet是多线程应用

最新文章

  1. MySQL update时使用联表,聚合
  2. SQL Server 2008通过LinkServer操作ORACLE
  3. SQL Server 分页方法汇总
  4. 设计模式之桥接模式(Bridge)
  5. 在MVC里面使用Response.Redirect方法后记得返回EmptyResult
  6. .className = &quot;highlight&quot;;.setAttribute(&quot;class&quot;, &quot;highlight&quot;);
  7. Android-----使用Button特效 selector+shape
  8. WTL 自绘 进度条Progressbar
  9. IIS7性能优化:启用浏览器本地缓存
  10. HapiJS开发手冊
  11. 【转载】stm32的GPIO八种工作模式
  12. springboot 的部分细节
  13. shell脚本学习-文件包含
  14. Python作业
  15. requests SSLError: hostname &#39;ccc.xxx.com&#39; doesn&#39;t match &#39;*.b0.upaiyun.com&#39;
  16. openfire群消息投递
  17. nginx启用TCP反向代理日志配置
  18. delphi 登陆窗口的问题 [问题点数:30分,结帖人tianhuo_soft]
  19. ip相关问题解答
  20. 在 CSS 中使用特征查询

热门文章

  1. JVM 核心参数
  2. python grpc 微服务
  3. 菜鸡的Java笔记 api 文档
  4. 菜鸡的Java笔记第三 - java 自动转换原则
  5. 【JavaSE】集合
  6. restTemplate的问题-feign的项目
  7. Codeforces 961F - k-substrings(二分+哈希)
  8. spring security 授权方式(自定义)及源码跟踪
  9. GATK4.1 call SNP
  10. 毕业设计之zabbix+微信企业号报警