设为首页 收藏本站
查看: 1044|回复: 0

[经验分享] tomcat 容器

[复制链接]

尚未签到

发表于 2017-1-15 10:45:35 | 显示全部楼层 |阅读模式
Tomcat的组成部分
1、server
A Server element represents the entire Catalina servlet container. (Singleton)
2、service
service包括多个connector以及一个engine,其职责为处理由connector获得的客户请求。
 
3、connector
一个connector在某个制定的端口上监听来自客户的请求,将得到的请求交给engine进行处理,并从engine处获得响应,进而返回给用户。
connector主要包括两类:
        一是Coyote Http/1.1 Connector   在8080端口侦听来自浏览器的客户http请求;
        二是Coyote JK2 Connector 在8009端口侦听来自其它WebServer的请求;
4、engine
Engine下可以配置多个虚拟主机Virtual Host,每个虚拟主机都有一个域名。当Engine获得一个请求时,根据请求域名将该请求的匹配到响应的Host上,然后把该请求交给该Host来处理。
Engine有一个默认虚拟主机,当请求无法匹配到任何一个Host上的时候,将交给该默认Host来处理。

5、host
代表一个Virtual Host,虚拟主机,每个虚拟主机和某个网络域名Domain Name相匹配。每个虚拟主机下都可以部署一个或者多个Web App,每个Web App对应于一个Context,有一个Context path
当Host获得一个请求时,将把该请求匹配到某个Context上,然后把该请求交给该Context来处理。无法和其它Context的路径名匹配的请求,最终将和该默认Context匹配。而该Host的默认Context为

 Context path=“”。
6、context
一个Context对应于一个Web Application,一个Web Application由一个或者多个Servlet组成。Context在创建的时候将根据配置文件$CATALINA_HOME/conf/web.xml和$WEBAPP_HOME/WEB-INF/web.xml载入Servlet类
当Context获得请求时,将在自己的映射表(mapping table)中寻找相匹配的Servlet类。如果找到,则执行该类,获得请求的回应,并返回。

 7、servlet容器

  • servlet容器接收客户请求解析
  • servlet容器创建servletRequest对象:包含客户请求信息及关于客户的信息如请求头、请求正文、客户机的ip等。
  • servlet容器创建servletResponse对象。
  • 调用客户请求的service方法api,将servletRequest、servletResponse作为参数传递进去;
  • 根据客户参数中的客户请求信息,利用servletResponse对象产生响应的结果
  • servlet容器将结果交给context

 
Tomcat运行范例
url:http://vt.ct.test.sankuai.info/api/product?contractId=9e506d54-58f1-11e3-8dea-00222822153f

  • 由sankuai.info 寻址到对应的server;
  • 该url端口号默认为8080,由service部分的Coyote Http/1.1 Connector侦听到来自客户的请求,并将其交付给service中的engine;
  • engine根据url对应的host域名vt.ct.test.sankuai.info匹配到对应的host,同时将请求交付给对应的host;
  • host由context path匹配对应的context,合同系统仅有context path=“”的默认context,则将请求交付给默认context;
  • 合同系统主要存在一个servlet,将请求交付对应的servlet,由客户申请servlet生成HttpServletRequest对象,HttpServletResponse对象;
  • 由controller的url/api/product寻址到对应的函数接口,将参数contractId=9e506d54-58f1-11e3-8dea-00222822153f传进去
  • 将返回通过servletResponse传递给servlet;
  • Context把执行完了之后的HttpServletResponse对象返回给Host
  • Host把HttpServletResponse对象返回给Engine
  • Engine把HttpServletResponse对象返回给Connector
  • Connector把HttpServletResponse对象返回给客户

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-328706-1-1.html 上篇帖子: tomcat路径 下篇帖子: tomcat 安装 在windows
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表