为了账号安全,请及时绑定邮箱和手机立即绑定

servlet load-on-startup只会调用init方法?

servlet load-on-startup只会调用init方法?

郎朗坤 2019-03-21 18:14:24
发现doGet、doPost、service方法都不调用,那我怎么获取request对象。。像这类load-on-startup的servlet实现原理是什么,服务器启动的时候就触发一个模拟的请求(显然不是)还是?
查看完整描述

1 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

load-on-startup只是web.xml中一个配置,其意义表示是否在web应用启动后立即加载该servlet。

  • load-on-startup >=0 时,表示在web应用启动后立即加载,其中load-on-startup的值越小,表示加载的优先级越高,如果两个servlet的load-on-startup值相同,则其加载优先级有容器决定;

  • load-on-startup 未配置时,则该servlet的加载由容器决定;

需要特别说明一下,如你所说,配置load-on-startup后,servlet在startup后立即加载,但只是调用servlet的init()方法,用以初始化该servlet相关的资源。初始化成功后,该servlet可响应web请求;如未配置load-on-startup,容器一般在第一次响应web请求时,会先检测该servlet是否初始化,如未初始化,则调用servlet的init()先初始化,初始化成功后,再响应请求。

PS:一般我们在开发web应用时,都会配置这个参数,有两个好处:1、如果初始化过程失败,则容器会提示启动失败,此时我们能够提前知道相关错误;2、配置该参数相当于将初始化servlet的工作转移到容器启动过程,使得容器只要启动成功后,就可立即响应web请求。


查看完整回答
反对 回复 2019-04-15
  • 1 回答
  • 0 关注
  • 589 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号