关于Servlet在服务器启动时创建

关于Servlet在服务器启动时创建

http://img1.sycdn.imooc.com//climg/5a0d05c00001b8ec09120891.jpg

http://img1.sycdn.imooc.com//climg/5a0d05bd0001684606710566.jpg

      视频说 要在xml写这个       <load-on-startup>2</load-on-startup> 才可以在启动时加载创建   为什么呢?  就是说 没写这句话的时候 启动服务器的时候 就不会先加载创建出inti()方法里的 List数组了?

完全没弄懂 希望能具体说明一下顺序 谢谢        


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
一叶知秋519 2017-11-16 12:01:47

你好,你可以这么理解一下:

1)load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)。

2)它的值必须是一个整数,表示servlet应该被载入的顺序

2)当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;

3)当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。

4)正数的值越小,该servlet的优先级越高,应用启动时就越先加载。

5)当值相同时,容器就会自己选择顺序来加载。

所以,<load-on-startup>x</load-on-startup>,中x的取值1,2,3,4,5代表的是优先级,而非启动延迟时间。

祝学习愉快~

  • 提问者 音殿 #1
    init()方法是怎样的 就是说想生成 List 就要在XML写 启动 load-on-startup 然后 启动完 init()就自动执行?为什么会 自动执行?我的理解有错吗
    2017-12-04 15:29:01
  • 一叶知秋519 回复 提问者 音殿 #2
    init方法是在Servlet第一次被访问的时候调用;如果不写load-on-startup,在服务器启动时就不会加载这个Servlet,更不会调用init方法,只有当请求到这个Servlet时,Servlet才会初始化;配置load-on-startup参数,就是说在服务器启动时就会执行这个Servlet,如果执行Servlet的话,就会自动执行Servlet中重写的init方法。你的理解没有错。你可以再看一下《Servlet入门》中的3-1Servlet声明周期这一小节。祝学习愉快~
    2017-12-04 15:46:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java Web基础入门2018版
  • 参与学习       716    人
  • 提交作业       185    份
  • 解答问题       1363    个

会Java?懂前端基础?想学后台开发?那么,赶快来学习《Java Web入门》路径吧。本路径主要介绍Java Web的基础知识,并配有大量案例,定会让你收获多多!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师