本人新手,最近在学Servlet,Servlet的对象究竟在哪呢?它通过Tomcat实例化之后,在保存在内存之中呢,还是保存在tomcat服务器之中呢?如果是保存在了web容器(tomcat)之中,那么岂不是又和对象都保存在内存之中的理论相违背么?求高手答疑,越深刻越好。

解决方案 »

  1.   

    保存在内存中,tomcat容器拥有该实例的引用,容器负责该实例的各种方法调用,各种参数传递
      

  2.   

    他的实力对象是在你开启开启服务器就创建的,他的创建过程在服务器中web.xml文件中写好了
      

  3.   

    你启动tomcat看看内存的变化,容器本来就占用内存,也就是说放在容器的内存里!
      

  4.   

    tomcat充当的就是servlet的加载容器 负责实例化 在web.xml中配置了
      

  5.   

    意思就是说,内存之中,又给服务器分配了一块内存区域,然后servlet就存放在此?是这样的意思么?
      

  6.   

    十分感谢大家的答疑,我有点明白是怎么回事了,以前一直把服务器和内存完全分离,然后去思考servlet,所以一直不得其解,在此对各位前辈表示感谢!
      

  7.   

    是阿,感觉servlet完全只能凭想象在思考它的流程。虽然生命周期就那几个方法,但是却没有明显的感官。
      

  8.   

    线程不安全,你觉得它会在哪?启动之后,就是处在tomcat整个容器之中(其实,tomcat还称不上容器)。tomcat会占用内存。
      

  9.   

    Tomcat 是个 Servlet 容器啊,既然是容器,那 Servlet 肯定在 Tomcat 的运行内存中了。
      

  10.   

    1. 首先tomcat 在系统中是个进程. 所以它会获得系统分配的内存空间.2. 在tomcat 获得的内存空间中, tomcat可以处理很多线程, 每个servlet请求就是一个线程,3. servlet对象在第一次被请求的时候被创建 并且 init(),期间可以接受处理 调用 doGet() 和doPost(),  4. 在服务器关闭或者tomcat配置被更改时 servlet对象才被destory().总结: servlet对象是单例的, 以多线程形式处理多个请求.  servlet对象存在于系统分配给tomcat进程的内存之中. 以上只供参考哦... 
      

  11.   

    他们的关系就类似
     内存--->tomcat单独占的内存--->servlet
    是这样理解的么。。