您好,匿名用户
随意问技术百科期待您的加入

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

+3 投票

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

用户头像 提问 2013年 8月11日 @ Quinn 上等兵 (107 威望)
分享到:

1个回答

+2 投票
 
最佳答案

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

用户头像 回复 2013年 8月11日 @ Jayce 上等兵 (271 威望)
选中 2013年 8月15日 @Saber
提一个问题:

相关问题

0 投票
1 回复 27 阅读
+1 投票
1 回复 47 阅读
用户头像 提问 2012年 12月1日 @ Olaf 上等兵 (366 威望)
0 投票
1 回复 41 阅读
用户头像 提问 2012年 12月1日 @ Yorick 上等兵 (278 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...