解决方案 »

  1.   

    1、你没用spring框架的话,web容器管理servlet,控制资源调用
    2、你点击计算,应该调用了servlet了吧,报的是socket close,是你servlet用到socket了?不是线程的问题
      

  2.   

    Servlet体系结构是建立在Java多线程机制之上的,它的生命周期是由Web容器负责的。
    点击计算的时候会发送一个请求到web 容器,会启用一个新的线程.
    Servlet本身不是线程安全的,
    对于有些框架,比如说struts1是非线程安全的,采用单例模式使用action.
    Struts 2 Action对象默认为每一个请求产生一个实例,因此没有线程安全问题
      

  3.   

    servlet是web容器通过封装socket实现的,每次一个请求都是一个线程,web容器在启动的时候维护了一个线程池,一个请求分发给一个线程去处理,当请求超过线程池的最大连接数时,socket等待。你所说的socket close的问题,你是调用了IO么,向页面输出计算的数据?这种情况下有可能会出现这个问题
      

  4.   

    1.是web容器,比如tomcat容器的线程池
    2.页面每个请求自然会占有一个容器的线程,点击“计算”按钮,然后请求就占有一个线程运算。Socket close和后台线程的关系:浏览器和tomcat的容器有socket连接,超时表示连接超时断掉了,线程还在运行中。是两个概念。举例说明,你我聊QQ,你把网线拔掉了,你的QQ不会关闭,但是QQ状态变成离线