Servlet 到底什么时候实例化,初始化
Mrpublic
2010-09-02
有的地方说 “
在web容器一启动时,会读取 web.xml的设定,根据当中的每个Servlet的设定, 将servlet 类别载入并实例化,并为每一个serlvet的设定产生一个ServletConfig 对象 然后呼叫servlet 接口的 init()方法 将产生的servletConfig 对象当参数传入后 完成初始化. ” 这里的设定 是指 web.xml 中的 loadOnStartup 如果大于0 就会在启动web容器的时候实例化 servlet?? 我的理解对不对呀? 如果是默认的-1.就会在你的某个页面请求到某个servlet的时候 才进行实例化servlet?? 是不是一但实例化 servlet 后 紧接着 下一步就是 初始化呀?? 朋友们 帮解惑一下上面的两个问题 谢谢 |
|
Mrpublic
2010-09-02
Mrpublic 写道 有的地方说 “
在web容器一启动时,会读取 web.xml的设定,根据当中的每个Servlet的设定, 将servlet 类别载入并实例化,并为每一个serlvet的设定产生一个ServletConfig 对象 然后呼叫servlet 接口的 init()方法 将产生的servletConfig 对象当参数传入后 完成初始化. ” 这里的设定(绿色字体部分) 是指 web.xml 中的 loadOnStartup 如果大于0 就会在启动web容器的时候实例化 servlet?? 我的理解对不对呀? 如果是默认的-1.就会在你的某个页面请求到某个servlet的时候 才进行实例化servlet?? 是不是一但实例化 servlet 后 紧接着 下一步就是 初始化呀?? 朋友们 帮解惑一下上面的两个问题 谢谢 |
|
za3999
2010-09-16
第一次访问的时候初始化吧
|
|
caleb_520
2010-09-19
Mrpublic 写道 有的地方说 “
在web容器一启动时,会读取 web.xml的设定,根据当中的每个Servlet的设定, 将servlet 类别载入并实例化,并为每一个serlvet的设定产生一个ServletConfig 对象 然后呼叫servlet 接口的 init()方法 将产生的servletConfig 对象当参数传入后 完成初始化. ” 这里的设定 是指 web.xml 中的 loadOnStartup 如果大于0 就会在启动web容器的时候实例化 servlet?? 我的理解对不对呀? 如果是默认的-1.就会在你的某个页面请求到某个servlet的时候 才进行实例化servlet?? 是不是一但实例化 servlet 后 紧接着 下一步就是 初始化呀?? 朋友们 帮解惑一下上面的两个问题 谢谢 最简单的一个测试就是在Servlet的init方法中打印一个语句出来看看。就知道Servlet是不是在第一个被调用的时候才初始化,还是容器启动就初始化 |
|
blogzhoubo
2010-10-19
取决于web.xml中的load-on-startup参数的设置。
一。如果没有配置load-on-startup,或者配置的值是负数,那么启动web容器的时候不会初始化该servlet,而是在该servlet被第一次请求调用的时候进行初始化,也就是调用init方法。 二。如果配置了load-on-startup,并且值大于或者等于0,那么在启动web容器的时候对该servlet进行初始化。 <servlet> <servlet-name>ConfigServlet</servlet-name> <display-name>ConfigServlet</display-name> <description></description> <servlet-class> com.ibm.xxx.ConfigServlet</servlet-class> <load-on-startup>0</load-on-startup> </servlet> |