Tomcat服务器的处理过程是怎样的呢?它的多线程处理机制又是怎样的?各位牛人进来讨论下。

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【hhz019】截止到2008-07-17 14:30:05的历史汇总数据(不包括此帖):
    发帖的总数量:24                       发帖的总分数:670                      每贴平均分数:27                       
    回帖的总数量:24                       得分贴总数量:1                        回帖的得分率:4%                       
    结贴的总数量:5                        结贴的总分数:70                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:19                       未结的总分数:600                      
    结贴的百分比:20.83 %               结分的百分比:10.45 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主该结一些帖子了
      

  2.   

    Tomcat处理http假设来自客户的请求为:
    http://localhost:8080/wsota/wsota_index.jsp1) 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得2) Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应3) Engine获得请求localhost/wsota/wsota_index.jsp,匹配它所拥有的所有虚拟主机Host4) Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机)5) localhost Host获得请求/wsota/wsota_index.jsp,匹配它所拥有的所有Context6) Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为""的Context去处理)7) path="/wsota"的Context获得请求/wsota_index.jsp,在它的mapping table中寻找对应的servlet8) Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类9) 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法10)Context把执行完了之后的HttpServletResponse对象返回给Host11)Host把HttpServletResponse对象返回给Engine12)Engine把HttpServletResponse对象返回给Connector13)Connector把HttpServletResponse对象返回给客户browser
      

  3.   

    才发觉,imA的头像和id配合的好棒
      

  4.   

    最有效的办法,去下一个TOMCAT的工程源代码,不能是只有SRC的文件夹,还要有写TOMCAT时的属性文件,ANT文件,配置文件等等,用eclipse把源代码导入,再往工程里导入TOMCAT所需的相应的JAR,用ANT编译好后,右键点击TOMCAT项目,选择Run As下的Open Run Dialog,这时弹出Run菜单,点开Java Application,点击选择TOMCAT6,Main选项卡里的Project选择你导入的TOMCAT源代码的项目名,Mian Class填入org.apache.catalina.startup.Bootstrap,在Arguments选项卡,Program Arguments填入参数start,VM Arguments填入参数-Dcatalina.home=“这里填写你源文件所在的路径”。这样基本就配置好了,在configure Server里把TOMCAT配置好,注意,这里的TOMCAT是咱们用源代码生成的TOMCAT。配置好后,你就可以打开你的Eclipse,在TOMCAT的源文件里随意设置断点了,在启动时就可以跟踪TOMCAT的全过程。
      

  5.   

    就向是二楼说的Tomcat处理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 
     
     
      

  6.   

    其实tomcat中的设计细节问题很多,从源代码中有很多技术细节可以研究。
      

  7.   

    有本书叫做 How Tomcat Works 虽然有点老了,但原理基本上差不多。不过最新的 tomcat 底层已经重新改写过了。