不多说散分··
当然··老规矩··顺便问个问题··呵呵·
在看到servlet的时候我发现一个问题··我想不明白一个sevlet的生命周期是由服务器端来决定的还是客户端来决定的?当一个客户端请求服务器端之后··sevlet被运行了··那当客户端关闭浏览器或者关闭请求的时候sevlet是不是就会自动的停止了呢?如果是这样··那如果一个服务器接收到的客户端的请求非常多的时候·也就是servlet过多的时候不是很容易导致服务器崩溃吗?
或许我的问题有点白痴··但是还是虚心请教··顺便给大家散分··年底了··希望大家都有个好收成··

解决方案 »

  1.   

    servlet是多线程的,并发的数量是可以在服务器上配置的
      

  2.   

    No.1 一个sevlet的生命周期是由服务器端来决定的
    no.2 ...
    no.3 ....lz 你首先的搞明白servlet的生命周期啊web服务器启动的时候会首先加载并创建servlet接着开始 init()  只初始化一次然后就开始等待客户端的请求  http... get  .. post...
    接着响应 get / post 请求然后请求完成之后就destroy  释放资源了至于你所说的 “也就是servlet过多的时候不是很容易导致服务器崩溃吗?”
    这个基本上不会吧要真是崩溃了 也只能是并发量太大而导致的崩溃
    另外servlet都是多线程的, 有web服务器管理。。本人理解的仅此而已:欢迎各位拍砖
      

  3.   

    Servlet 从被客户第一次请求开始,由Web 容器加载并实例化对象,随后进行
    初始化、服务和销毁。一个Servlet 在初始化时会执行其init() 方法,在服务
    阶段执行serivce() 方法,之后一直常驻内存,直至Web 容器停止才会执行其
    destroy() 方法进行对象的销毁工作
      

  4.   

    Servlet 从被客户第一次请求开始,由Web 容器加载并实例化对象,随后进行
    初始化、服务和销毁。一个Servlet 在初始化时会执行其init() 方法,在服务
    阶段执行serivce() 方法,之后一直常驻内存,直至Web 容器停止才会执行其
    destroy() 方法进行对象的销毁工作
      

  5.   

    散分别在技术区散分,谢谢合作.
    Serlvet是单例的,生命周期由WEB容器决定.
    单例就是不管多少个线程来访问都是同一个对象,所以,如果在Servlet里使用属性的话,请注意一点,小心同步问题.
      

  6.   

    我也正在看servlet,老是连不上access数据库,郁闷
      

  7.   

    应该是服务器决定,用户交互一次,服务器就响应一个serverlet,返回成页面后serverlet就销毁了啊
      

  8.   

    比如用tomcat
    在启动的时候不是回创建servlet吗提供给多个线程使用的 
      

  9.   

    在Java刚开始的时候不是applet么它是客户端的应用小程序,而Servlet是服务器端小程序,生命周期肯定是有服务器端控制了,当有客户端第一次请求某个Servlet对象的时候由容器调用init方法实例化该对象,该对象对外提供的服务是以多线程方式进行的,也就是说对于每一个客户端的请求都会有单独的线程来进行处理,lz考虑的如果客户端并发访问的线程过多,会照成服务器端崩溃的可能是很小的,在服务器端会有专门的线程池来管理这些处理客户端请求的线程,资源一般情况下都会被及时的释放,但也不排除某些可能性,比如某段时间内客户端并发访问的量过大,而这种并发访问的量又超出了服务器端的负载,那恐怕就有可能服务器崩溃。
    但还是那句话一般是很少,,,,,,,,,,,,,,,,
      

  10.   

    大概是如此啊,没深入学习过j2ee ,只为接分啦
      

  11.   

    Servlet是由容器管理的,当一个请求到来的时候,容器会为这个请求查找相应的Servlet class并加载这个类,然后调用init方法,当init成功之后,这个Servlet就可以提供服务了。通常情况下,当一个容器被shut down的时候,Servlet的destroy方法会被调用。init, service, destroy是Servlet中非常重要的的生命同期方法。
      

  12.   

    顶48楼的,一个servlet应该在服务器被创建后,就会一直存在,知道服务器重启或者关机。其间,每个客户端请求服务时,应该是服务器的servlet建立一个独立的线程,用于该客户端服务,直到客户端请求结束,该线程自动释放,然后服务器又处于等待状态
    -----
    个人理解。
    ----------
    接分。
      

  13.   

    servlet是单例的,所以无论什么线程调用的都是同一个servlet。销毁是由容器决定什么时候销毁,具体判定还是去看看源码吧destory()方法
      

  14.   

    init()distory()
    dopostdoget
      

  15.   

    Servlet被服务器实例化后,容器运行其init方法,
    请求到达时运行其service方法,
    service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,
    当服务器决定将实例销毁的时候调用其destroy方法。
    与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。 
      

  16.   

    sevlet的生命周期是由服务器端来决定的。
    周期为:init()、serivce()、doget()、dopost()、distory()
    对应的客户端是applet。希望回答对你有所帮助!