解决方案 »

  1.   

    基本没几个去研究、楼主有兴趣把Jetty搭建出来玩玩。很简单的,然后再跟踪源代码。
      

  2.   

    一个http请求一个线程吧?如果是SpringMVC 的action 貌似就是单实例的,
      

  3.   

    tomcat维护了一个线程池,线程数自身并没有限制,跟硬件相关,高端的硬件配合性能优越的系统可以支持上千的并发,不做服务器的维护了,对tomcat的了解还停留在6的阶段,新特性没研究了
      

  4.   

    九、 Tomcat Server处理一个http请求的过程
    假设来自客户的请求为:
    http://localhost:8080/wsota/wsota_index.jsp
    1) 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得
    2) Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应
    3) Engine获得请求localhost/wsota/wsota_index.jsp,匹配它所拥有的所有虚拟主机Host
    4) Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机)
    5) localhost Host获得请求/wsota/wsota_index.jsp,匹配它所拥有的所有Context
    6) Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为""的Context去处理)
    7) path="/wsota"的Context获得请求/wsota_index.jsp,在它的mapping table中寻找对应的servlet
    8) Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类
    9) 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法
    10)Context把执行完了之后的HttpServletResponse对象返回给Host
    11)Host把HttpServletResponse对象返回给Engine
    12)Engine把HttpServletResponse对象返回给Connector
    13)Connector把HttpServletResponse对象返回给客户browser具体看 http://www.tools138.com/front/article/queryById.htm?id=419550
      

  5.   

    肯定都有线程池(Thread pool)哇,统一管理和维持,
    不然成千上万个线程乱串,服务器还不挂定了。另外TOMCAT 和 weblogic 的http请求处理是不一样,这个具体可以“百度一下” ,如“tomca的http请求过程”,“weblogic 的http请求过程”,
      

  6.   

    LZ貌似不是问的你答得这些,楼主问的是服务器处理机制,你答得是http请求的原理。
    我蛋蛋的笑了
      
      

  7.   

    Tomcat用的是线程池,其实server.xml里就有提到了。 <Executor maxThreads="500" minSpareThreads="5" name="tomcatThreadPool" namePrefix="catalina-exec-"/>
      

  8.   


    <Connector URIEncoding="UTF-8" connectionTimeout="20000" executor="tomcatThreadPool" port="80" protocol="HTTP/1.1" redirectPort="8443"/>这句是接收HTTP请求的,指定了使用哪个Executor。
      

  9.   

    肯定是这样的,源码中也是这样写的。
    从配置文件中字面理解就是Connector为监听http请求的server,Executor为处理http请求的处理器。
    而处理器中的实现是连接池的子类。从源代码的启动过程可以看到这些。