Servlet实例并初始化
想在一启动服务时,就让Servlet实例并初始化,就像Filter一样,是动.xml吧.但不知道细节,麻烦知道的大侠帮一下. 看了http://bbs.bc-cn.net/viewthread.php?tid=125734楼主发的帖子,以及版主的解答,结合自身的学习积累
1。我自己的以前学习的结果是――servlet只有在第一次被请求的时候才加载到内存里面去的,也就是类的加载和实例化是差不多同时进行的,当然类被类加载器加载肯定在实例化前面
2。这一次我测试了load-on-startup―记得这个参数是说明类加载器加载各个web。xml中的servletc的加载顺序,
3。经过测试 在类中加入
public class TestServletStart extends HttpServlet {
static {
System.out.println("被加载了");
}
{
System.out.println("我被实例化了");
}
从控制台得到结果
3.1如果存在load-on-startup参数,那么不管值为多少都会被实例化
3.2如果不存在,那么只有在第一次被请求的时候才会实例化
[此贴子已经被作者于2007-3-22 11:33:00编辑过]
搜索更多相关主题的帖子:
Servlet实例 内存 加载 quot php
----------------解决方案--------------------------------------------------------
你应该去看看完整的容器启动过程的分析。这些都是常识。
----------------解决方案--------------------------------------------------------
我本来是要应用别人的阿,嘿嘿,我倒是没有注意过load-on-startup对servlet的加载的影响,这个参数存在的话,那么在应用初始化时就会去实例化servlet而不是第一次请求,刚才看了English的原版
----------------解决方案--------------------------------------------------------
哈哈 我只知道用<form action="servletname"></form>这种方法启动servlet
Filer是用户请求时自动启动的
----------------解决方案--------------------------------------------------------
倒,那个参数就是用来按顺序加载SERVLET的!
----------------解决方案--------------------------------------------------------
嘿嘿,叫劲了阿!哈哈,看清楚我的意思啊,我侧重的是说没有注意过load-startup参数对于servlet的类什么时候被类加载器加载到内存中,而不是说起他的,我的英文也不至于那么差拉!
不争了!结帖
----------------解决方案--------------------------------------------------------
以下是引用时空之蕊在2007-3-22 11:31:45的发言:
嘿嘿,叫劲了阿!哈哈,看清楚我的意思啊,我侧重的是说没有注意过load-startup参数对于servlet的类什么时候被类加载器加载到内存中,而不是说起他的,我的英文也不至于那么差拉!
不争了!结帖
所以我建议你把整个容器启动过程了解下啊,这样对才对运行过程有整体把握。
如果你只是做做小网站,或者为了应付考试那就不需了解了。
所有JSP被调用时候都是转成SERVLET,所有SERVLET也是第一次被调用时候才编译的。
如果你需要在项目中应用框架,必然涉及到启动顺序问题,因为需要先调用某些SERVLET来初始化框架相关的东西。
我说这些的目的是说这些问题很重要,是本质,必须了解。希望你没误会我的意思!
----------------解决方案--------------------------------------------------------