博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Tomcat】JVM,Tomcat,Servlet,Tomcat中的应用。彻底弄懂这些概念之间的联系
阅读量:6932 次
发布时间:2019-06-27

本文共 709 字,大约阅读时间需要 2 分钟。

tomcat和tomcat中的应用(即webapps下的war包)是运行在同一个jvm中的,但分工不同。

tomcat的角色是“调度员”,而你的应用的角色是“工作者”,tomcat处理一个请求的大致过程如下:

1. 假设tomcat监听8080端口,当一个http请求从主机的8080端口发送过来时,tomcat最先获知。
2. tomcat将此请求作为任务加入一个队列中,jvm中有若干工作者线程会从这个队列中获取任务。
3. 假设工作线程A取到了这个任务,那么线程A通过分析请求的url,检查已加载的web.xml配置,来判断此请求应该交给应用的哪个servlet处理(假设应用是用servlet实现的)
4. 工作线程A调用对应的servlet的方法(service/get/post等),把请求封装成request对象传给servlet
5. 此时应用开始干活(实际上干活的还是工作线程,只不过执行的是应用中编写的业务逻辑),解析请求参数,处理业务流程,生成response
6. 工作线程A把response回送给请求的发送端。

 

servlet规范就是规范了应用和容器的通信。简单的说,比如你用 SpringMVC 写了一个 web 应用, springmvc 是遵守 servlet 规范的,所以,它可以跑在任何遵循 servlet 规范的容器上,比如,它可以跑在 tomcat 上, tomcat 就是一个 servlet 容器,当然,它也可以跑在 jetty 上。 

tomcat 是用 java 语言开发的,所以, tomcat 就是一个 java 应用,需要跑在 JVM 中,就是 java 虚拟机。

转载地址:http://sfmjl.baihongyu.com/

你可能感兴趣的文章
dubbo学习之dubbo管理控制台装配及集成zookeeper集群部署(1)【转】
查看>>
jsp提交登陆信息,servlet返回一个html页面(不做验证,无数据库)
查看>>
CentOS7 使用的定制
查看>>
SSM(九)反射的实际应用-构建日志对象
查看>>
CSS技巧收集
查看>>
装饰模式
查看>>
Redis+Mysql模式和内存+硬盘模式的异同
查看>>
Android第二十七天
查看>>
[转].NET StockTrader 6 Sample Application
查看>>
[Windows Azure] How to Manage Cloud Services?
查看>>
SpringCloud中Feign调Token丢失解决办法
查看>>
centos6 配置vlan trunk口
查看>>
----- java导出xml
查看>>
springboot-项目属性配置
查看>>
<a> href Post提交请求
查看>>
Linux下DHCP服务管理
查看>>
redhat7.1部署ceph
查看>>
mysql多种存储引擎
查看>>
Python的decorator示例
查看>>
[转载] 考试经验——2011年通过信息系统项目管理师考试心得
查看>>