求教下目前的主流服务器的线程原理 tomcatweblogic线程池线程 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 基本没几个去研究、楼主有兴趣把Jetty搭建出来玩玩。很简单的,然后再跟踪源代码。 一个http请求一个线程吧?如果是SpringMVC 的action 貌似就是单实例的, tomcat维护了一个线程池,线程数自身并没有限制,跟硬件相关,高端的硬件配合性能优越的系统可以支持上千的并发,不做服务器的维护了,对tomcat的了解还停留在6的阶段,新特性没研究了 九、 Tomcat Server处理一个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具体看 http://www.tools138.com/front/article/queryById.htm?id=419550 肯定都有线程池(Thread pool)哇,统一管理和维持,不然成千上万个线程乱串,服务器还不挂定了。另外TOMCAT 和 weblogic 的http请求处理是不一样,这个具体可以“百度一下” ,如“tomca的http请求过程”,“weblogic 的http请求过程”, LZ貌似不是问的你答得这些,楼主问的是服务器处理机制,你答得是http请求的原理。我蛋蛋的笑了 Tomcat用的是线程池,其实server.xml里就有提到了。 <Executor maxThreads="500" minSpareThreads="5" name="tomcatThreadPool" namePrefix="catalina-exec-"/> <Connector URIEncoding="UTF-8" connectionTimeout="20000" executor="tomcatThreadPool" port="80" protocol="HTTP/1.1" redirectPort="8443"/>这句是接收HTTP请求的,指定了使用哪个Executor。 肯定是这样的,源码中也是这样写的。从配置文件中字面理解就是Connector为监听http请求的server,Executor为处理http请求的处理器。而处理器中的实现是连接池的子类。从源代码的启动过程可以看到这些。 不规则数组与super 在html中点击按钮"添加"就可以在页面添加新的输入框? 想用xml存数据,大家指点一下啊。 关于<html:select>的问题 java代码调用应用程序exe问题 分很多,请教以下两个过滤功能的操作如何实现,屏蔽一些字符等等,谢谢! 花100分问个关于动态树的问题 JSP提取数据库中值的小错误,高手多指教 servlet如何调用一个子窗口显示指定的jsp,并且把从库里取得的数据传给页面? 帮我改一下连接池代码 怎么保存图片 Hibernate中,关系映射中查询出来的数据为“包名+16进制数”
假设来自客户的请求为:
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
不然成千上万个线程乱串,服务器还不挂定了。另外TOMCAT 和 weblogic 的http请求处理是不一样,这个具体可以“百度一下” ,如“tomca的http请求过程”,“weblogic 的http请求过程”,
我蛋蛋的笑了
<Connector URIEncoding="UTF-8" connectionTimeout="20000" executor="tomcatThreadPool" port="80" protocol="HTTP/1.1" redirectPort="8443"/>这句是接收HTTP请求的,指定了使用哪个Executor。
从配置文件中字面理解就是Connector为监听http请求的server,Executor为处理http请求的处理器。
而处理器中的实现是连接池的子类。从源代码的启动过程可以看到这些。