本帖最后由 xishuixixia 于 2011-09-22 11:00:33 编辑

解决方案 »

  1.   

    感觉挺有用的一个知识点:(1)Filter和Listener的生命周期,何时初始化,何时销毁,收到请求如何处理?(2)如果同时配置了RequestListener和Filter,那么请求是先被过滤器接收到,还是先被Listener接收到?
      

  2.   


    Listener的初始化最早,Filter次之。他俩的初始化都是在容器启动完成之前初始化的。Servlet是不会自动初始化的,在请求进来的时候才会初始化。如果想要servlet自动初始化,需要在指定的servlet中配置<load-on-startup>参数,没有此标签,默认启动时servlet不进行初始化。
    Filter生命周期1、启动服务器时加载过滤器的实例,并调用init()方法来初始化实例;
    2、每一次请求时都只调用方法doFilter()进行处理;
    3、停止服务器时调用destroy()方法,销毁实例。关于listener 我想生命周期应该同Filter
      

  3.   


    servlet应该是启动服务就初始化了吧!
    servlet生命周期就是
    当服务启动之后,初始化servlet,然后根据客户端请求,service方法 最后销毁。
      

  4.   

    不。。Servlet只有当有请求过来的时候才会初始化。  第一次请求的时候会初始化,以后就直接调用了,因为在整个生命周期中,只有一个实例。呵呵 想一开始就实例化的话,可以配置load-on-startup  0
      

  5.   


    (1)Servlet默认是不会自动初始化的,在请求进来的时候才会初始化。
    (2)如果想要servlet自动初始化,需要在指定的servlet中配置<load-on-startup>参数,没有此标签,默认启动时servlet不进行初始化。
    (3)<load-on-startup>的值越小,就越早进行初始化,也越早进行卸载。
    (4)初始化的顺序是:Listener,Filter,Servlet
        卸载的顺序是:Servlet,Filter,Listener。
      

  6.   


    上面的结论是在tomcat7里面得出的,不知道servlet规范是不是这样的?有待考证!
      

  7.   

    初始化顺序是没错的,至于destory就不太清楚了
      

  8.   

    初始化的顺序是那样的,而且他的顺序跟在web.xml中的顺序还无关,但如果web.xml中配置了<context-param>,貌似初始化顺序是:context-param > Listener > Filter > Servlet 
    ,销毁就不了解了
      

  9.   

    恩,上面也解释了。我再次强调一下,如果再servlet中不做特殊配置,那么servlet不会在容器初始化的时候加载的。
      

  10.   

    还有就是补充一个知识点:很多朋友都问过我如何在filter中调spring容器管理的对象,我这里给出方法:WebApplicationContext webApplicationContext = WebApplicationContextUtils
    .getWebApplicationContext(request.getSession().getServletContext()); 
    dbinitDao=(DbinitDao)webApplicationContext.getBean("dbinitDao");
      

  11.   

    好东西,尤其是我不懂ssh,lz上传csdn资源,发链接吧。
      

  12.   

    已经推荐,已经整理到分享贴中。 最常见的SSH面试〈三〉
      

  13.   


     想起来了 ,确实servlet是在请求的时候实例化的,而且每个请求有且只有一个servlet实例!谢谢大胡子
      

  14.   

    hiberante 二级缓存好像是在 Sessionfactory中!
      

  15.   


    -----------------------------老虎插件↓
    快速添加:http://malaohu-project.googlecode.com/files/Plugin_v1.5.1.js