Tomcat 的运行机制

转载地址:  http://wiki.jikexueyuan.com/project/java-web/00-08.html


先不去关技术细节,对一个servlet容器,我觉得它首先要做以下事情: 


1:实现Servlet api规范。这是最基础的一个实现,servlet api大部分都是接口规范。如request、response、session、cookie。为了我们应用端能正常使用,容器必须有一套完整实现。


2:启动Socket监听端口,等待http请求。


3:获取http请求,分发请求给不同的协议处理器,如http和https在处理上是不一样的。


4:封装请求,构造HttpServletRequest。把socket获取的用户请求字节流转换成java对象httprequest。构造httpResponse。


5:调用(若未创建,则先加载)servlet,调用init初始化,执行servlet.service()方法。


6:为httpResponse添加header等头部信息。


7:socket回写流,返回满足http协议格式的数据给浏览器。


8:实现JSP语法分析器,JSP标记解释器。JSP servlet实现和渲染引擎。


9:JNDI、JMX等服务实现。容器一般额外提供命名空间服务管理。


10:线程池管理,创建线程池,并为每个请求分配线程。

时间: 2025-01-19 19:43:03

Tomcat 的运行机制的相关文章

grunt源码解析:整体运行机制&grunt-cli源码解析

前端的童鞋对grunt应该不陌生,前面也陆陆续续的写了几篇grunt入门的文章.本篇文章会更进一步,对grunt的源码进行分析.文章大体内容内容如下: grunt整体设计概览 grunt-cli源码分析 grunt-cli模块概览 grunt-cli源码分析 写在后面 grunt整体设计概览 grunt主要由三部分组成.其中,grunt-cli是本文的讲解重点 grunt-cli:命令行工具,调用本地安装的grunt来运行任务,全局安装. grunt:本地grunt,一般安装在项目根目录下.主要

从setTimeout谈JavaScript运行机制

前言 最近在看些JavaScript异步的东西,但是由于时间有限,才刚看了个头,不得不中途停止.为了方便日后查阅以备重拾,遂记录一点体会,如果能使得他人有所收获,那更是极好的.其实本文与异步并没有太大关系. 从setTimeout说起 众所周知,JavaScript是单线程的编程,什么是单线程,就是说同一时间JavaScript只能执行一段代码,如果这段代码要执行很长时间,那么之后的代码只能尽情地等待它执行完才能有机会执行,不像人一样,人是多线程的,所以你可以一边观看某岛国动作片,一边尽情挥洒汗

spring中DispatcherServlet的运行机制

servlet Spring中DispatcherServlet的运行机制 DispatcherServlet是spring的web框架(以下简称SpringWeb)中的核心servlet."Spring的web框架--象其它web框架一样--是一个请求驱动的web框架,其设计围绕一个能将请求分发到控制器的servlet,它也提供其它功能帮助web应用开发."----<Spring Framework 开发参考手册(中文版)>而在SpringWeb框架中这个servlet就

Visual Studio 2008可扩展性开发(三):Add-In运行机制解析(下)

前言 在上篇Add-In运行机制解析(上)中,我分析了Add-In向导生成的代码,从中我们知 道只要创建一个类库,它包含实现了IDTExtensibility2接口的类,然后为其建立.addin 配置文件,就可以实现一个Add-In了.本文将更进一步,介绍Add-In的事件和生命周期, 为今后的开发打下基础. Add-In的事件 Add-In是事件驱动的,可以猜到的事件有加载.卸载.状态改变等等.事实上,这些 事件都与IDTExtensibility2接口有关,也就是该接口的5个方法: 如果要了

javascript运行机制之this详细介绍

 这篇文章主要介绍了javascript运行机制之this,需要的朋友可以参考下 this是面向对象语言中一个重要的关键字,理解并掌握该关键字的使用对于我们代码的健壮性及优美性至关重要.而javascript的this又有区别于Java.C#等纯面向对象的语言,这使得this更加扑朔迷离,让人迷惑.   this使用到的情况: 1. 纯函数 2. 对象方法调用 3. 使用new调用构造函数 4. 内部函数 5. 使用call / apply  6.事件绑定   1. 纯函数    代码如下: v

SSL/TLS协议运行机制的概述

互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 不使用SSL/TLS的HTTP通信,就是不加密的通信.所有信息明文传播,带来了三大风险. (1) 窃听风险(eavesdropping):第三方可以获知通信内容. (2) 篡改风险(tampering):第三方可以修改通信内容. (3) 冒充风险(pretending):第三方可以冒充他人身份参与通

tomcat-项目在Tomcat下运行不了了

问题描述 项目在Tomcat下运行不了了 新手...之前重装了一下eclipse.然后重装tomcat 装了 7.0.56版本的.然后项目就运行不起来了.也不报错.点开8080出现猫.直接把项目丢到webapps下面也是404 解决方案 在eclipse中怎么运行j2ee项目到tomcat服务器中eclipse远程调试tomcat运行的web项目--配置Jetty和Tomcat运行Maven Web项目几种方法 解决方案二: eclipse里配置的tomcat, tomcat默认路径修改了吗(如

【朴灵评注】JavaScript 运行机制详解:再谈Event Loop

PS: 我先旁观下大师们的讨论,得多看书了~ 别人说的:"看了一下不觉得评注对到哪里去,只有吹毛求疵之感. 比如同步异步介绍,本来就无大错:比如node图里面的OS operation,推敲一下就可以猜到那是指同步操作(自然不走event loop了):至于watcher啥的,显然只是实现上的特色,即使用同一个queue实现也未尝不可" [原帖: http://www.ruanyifeng.com/blog/2014/10/event-loop.html 作者:阮一峰] 一年前,我写了

JavaScript 运行机制详解:再谈Event Loop

一年前,我写了一篇<什么是 Event Loop?>,谈了我对Event Loop的理解. 上个月,我偶然看到了Philip Roberts的演讲<Help, I'm stuck in an event-loop>.这才尴尬地发现,自己的理解是错的.我决定重写这个题目,详细.完整.正确地描述JavaScript引擎的内部运行机制.下面就是我的重写. 进入正文之前,插播一条消息.我的新书<ECMAScript 6入门>出版了(版权页,内页1,内页2),铜版纸全彩印刷,非常