在StandardContext的start()方法里,除了触发相应的LifecycleEvent之外,当然还有其它的处理,下面我们来一一看看其中一些需要了解的内容;
1.如果设置了支持JNDI,下面这段代码将为此CONTEXT注册一个监听器
2.在触发START_EVENT之前,调用本身持有的logger,cluster,realm,resources,children,pipeline的start方法启动子对象,触发START_EVENT,此事件所做的工作在上两篇已进行了初步讲解:
3.如果是集群方式的,还需要实例化一个clustered manager
4.如果是支持注释的,那还要产生一个用于处理注释的处理器
5.启动已有的listener
listenerStart方法如下:
6.启动实例化Servlet
StandardWrapper.load方法如下:
具体请看其loadServlet源代码,主要是实例化具体的servlet类并调用其init进行初始化,如果loadOnStartup>0且不是JSP的话,还要先模拟一次请求来调用该servlet的service方法