网上搜一下servlet线程安全经常会看到这样一句:不要在 Servlet中再创建自己的线程来完成某个功能。为什么呢?经常会用到servlet里控制线程的呀

解决方案 »

  1.   

    why?????
    谁来告诉我,
      

  2.   

    如果线程执行任务,servlet方法又不会被阻塞。 如果任务失败了,怎么向浏览器报告失败信息呢。 
      

  3.   

    在Servlet中开启线程没什么意义。Servlet主要就是请求,响应机制。开线程后,难道要等到另一个线程的结果么?
      

  4.   


    这个应该不成问题吧:
    错误信息可以存在共享区域里,写一个servlet读取共享区域,浏览器不停的请求这个servlet就行了。
      

  5.   

    如果要执行一个不断执行的任务。你可以使用监听 和timer结合来使用。如果你不使用任何框架的话,你可以实现这个接口来做ServletContextListener实现这个contextInitialized方法。实现完后,在web.xml添加一个监听器就可以了。
    如果你使用框架,你就用spring的quartz。
      

  6.   

    至于servlet 我记得本身他就是多线程,你要是在里面再开线程,结果可想而知,我想这个就是这个原因吧。
      

  7.   


    现在就是这么做的.只是感觉用servlet来控制更直接点.不明白为啥不能这么用
      

  8.   

    当然不是想怎么弄都行。我只是说了一个可以实现的方式。浏览器请求的意思是说用ajax请求。其实也可以用类似comet从服务器端推到浏览器。
      

  9.   

    呵呵。ajax请求哦。 确实可以,有时间的话我也实践一下。