java - servlet load-on-startup只会调用init方法?
ringa_lee
ringa_lee 2017-04-17 11:08:31
[Java讨论组]

发现doGet、doPost、service方法都不调用,那我怎么获取request对象。。像这类load-on-startup的servlet实现原理是什么,服务器启动的时候就触发一个模拟的请求(显然不是)还是?

ringa_lee
ringa_lee

ringa_lee

全部回复(1)
巴扎黑

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请求。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号