- 浏览: 412858 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
pmh905001:
写的很详尽,感谢!
解析jvm.dll和java.exe -
Bll:
插得真深啊,我的是(eclipse_j2ee_juno):F: ...
在eclipse里jsp编译后的java和class文件的位置 -
heming_way:
谢谢,对我很有用,解答了我对多值依赖的疑问
关于多值依赖--范式! -
JavaStudy2011:
java语言解析xml文件 -
vrussell:
Thanks man, it helps me a lot!
获得IEditorPart和IDocument
今天在独立的Tomcat中部署LifeRay Portal ,结果发现总是不能启动Tomcat,也没有抛出异常,所以就看了一些关于Tomcat启动过程的资料。分享一下。
Tomcat启动分析
1 - Tomcat Server的组成部分
1.1 - Server
A Server element represents the entire Catalina servlet container. (Singleton)
1.2 - Service
A Service element represents the combination of one or more Connector components that share a single Engine
Service是这样一个集合:它由一个或者多个Connector组成,这些Connector共享一个Engine,负责处理所有Connector所获得的客户请求
1.3 - Connector
一个Connector将在某个指定端口上侦听客户请求,并将获得的请求交给Engine来处理,从Engine处获得回应并返回客户
TOMCAT有两个典型的Connector,一个直接侦听来自browser的http请求,一个侦听来自其它WebServer的请求
Coyote Http/1.1 Connector 在端口8080处侦听来自客户browser的http请求
Coyote JK2 Connector 在端口8009处侦听来自其它WebServer(Apache)的servlet/jsp代理请求
1.4 - Engine
Engine下可以配置多个虚拟主机Virtual Host,每个虚拟主机都有一个域名
当Engine获得一个请求时,它把该请求匹配到某个Host上,然后把该请求交给该Host来处理Engine有一个默认虚拟主机,当请求无法匹配到任何一个Host上的时候,将交给该默认Host来处理
1.5 - Host
代表一个Virtual Host,虚拟主机,每个虚拟主机和某个网络域名Domain Name相匹配
每个虚拟主机下都可以部署(deploy)一个或者多个Web App,每个Web App对应于一个Context,有一个Context path
当Host获得一个请求时,将把该请求匹配到某个Context上,然后把该请求交给该Context来处理
匹配的方法是“最长匹配”,所以一个path==""的Context将成为该Host的默认Context
所有无法和其它Context的路径名匹配的请求都将最终和该默认Context匹配
1.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类
如果找到,则执行该类,获得请求的回应,并返回
2 - 配置文件$CATALI
NA_HOME/conf/server.xml的说明
该文件描述了如何启动Tomcat Server
4 - Context的部署配置文件web.xml的说明
一个Context对应于一个Web App,每个Web App是由一个或者多个servlet组成的当一个Web App被初始化的时候,它将用自己的ClassLoader对象载入“部署配置文件web.xml”中定义的每个servlet类它首先载入在$CATALINA_HOME/conf/web.xml中部署的servlet类然后载入在自己的Web App根目录下的WEB-INF/web.xml中部署的servlet类web.xml文件有两部分:servlet类定义和servlet映射定义
每个被载入的servlet类都有一个名字,且被填入该Context的映射表(mapping table)中,和某种URL PATTERN对应当该Context获得请求时,将查询mapping table,找到被请求的servlet,并执行以获得请求回应
分析一下所有的Context共享的web.xml文件,在其中定义的servlet被所有的Web App载入
default
org.apache.catalina.servlets.DefaultServlet
debug0listingstrue1invoker
org.apache.catalina.servlets.InvokerServlet
debug02jsporg.apache.jasper.servlet.JspServletlogVerbosityLevelWARNING3default/invoker/servlet/*jsp*.jsp
5 - Tomcat Server处理一个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
发表评论
-
IE中的条件编译
2011-10-30 18:53 2042引用条件编译介绍 在IE有一个几乎没人知道的特性--“条件编 ... -
ClientAbortException: java.net.SocketException: Connection reset by peer: socke
2011-10-13 14:25 1描述下问题 tomcat报错 ClientAbortExc ... -
(转)实现Ajax请求队列按顺序执行
2011-10-07 10:23 5465摘自http://www.ilovejs.net/archiv ... -
关于无法delete文件
2011-09-26 17:12 1389File f=new File(targetDir+&qu ... -
firefox上传文件
2011-09-23 15:19 2139先看一个实例: jsp <tr class=" ... -
HTML标签的<button>导致数据在firefox自动提交和在firefox里面弹出div窗口失败
2011-09-07 15:22 1757项目中遇到这么个问题 项目中想利用div制造弹出窗口的操作 c ... -
转:Div自适应高度
2011-08-04 14:49 1468由于设计页面需要,要把两个并排显示的div实现一样高的效果,n ... -
在eclipse里jsp编译后的java和class文件的位置
2011-08-03 14:08 10202eclipse版本不一样,位置也不一样 第一种:(网上搜到的) ... -
iframe的属性:document和Document以及Document的属性和iframe在各个浏览器获得内部文档的写法
2011-08-03 11:37 2003.document引用到是的 iframe所在页面对象, .D ... -
浏览器加载显示html的顺序
2011-08-02 15:36 2275其实浏览器加载显示html的顺序是按下面的顺序进行的: 1、I ... -
PreparedStatement setString 特殊字符乱码
2011-07-29 13:27 2218PreparedStatement setString 特殊字 ... -
符编码笔记:ASCII,Unicode和UTF-8
2011-07-29 10:37 900阮一峰 日期: 2007年10月28日 1. ASCII码 ... -
自己写的多表单插入数据和几个form同时提交
2011-07-28 18:40 3106<%@ page language="ja ... -
获得IEditorPart和IDocument
2011-04-18 13:08 1995IWorkbench workbench=Platform ... -
黑客利用js--alert(1)
2011-03-14 12:51 2851Javascript代码 ($=[$=[]][(__=!$+ ... -
Tomcat的Classloader
2010-08-27 17:48 4221Tomcat的启动是从解析bat文件开始,bat文件最终调用o ... -
Spring中bean的作用域
2010-08-10 13:44 1785如何使用spring的作用域 ... -
@SuppressWarnings("*****")
2010-08-07 16:25 1042解释一: 屏蔽某些编译时的警告信息 ... -
各种类型文件中java的形式
2010-08-06 17:35 1307.a' : 'application/octet-s ... -
maven的dependency和repository
2010-08-03 14:23 1069...
相关推荐
详细说明了tomcat启动过程中 加载资源的顺序
详细讲解Tomcat启动的过程,了解tomcat原理
之前tomcat启动老是报错,虽然不影响项目的启动运行,但是有强迫症的程序员会心里不爽: 如下: 问题分析 由于本机安装的jdk版本与tomcat中使用的jdk版本不一致导致的。 解决方法 后面我把原先tomcat启动环境用的...
除了介绍Tomcat的启动过程,这份文档还可以帮助读者更好地理解Tomcat的内部工作原理,从而更好地进行二次开发和定制化。此外,文档中还提供了一些实用的技巧和注意事项,帮助读者更快地掌握Tomcat的使用和调试方法。...
文档中描述了tomcat不能启动的个中问题,帮你解决tomcat配置过程中出现的问题.
SpringBoot-2.7.6内置Tomcat启动以及DispatcherServlet装配过程,源码跟踪调试流程图
使用默认配置的tomcat,另外虚拟目录也可这设置: <Context path="/test" docBase="webContent" reloadable="true"/> 因为默认情况下,tomcat启动过程中配置虚拟目录的时候会从 webapps目录下查找webContent应用....
1. Tomcat 启动过程分析。分析tomcat的启动过程 2. Tomcat Web容器功能分析。分析web容器的实现方法 3. Tomcat 其他配置说明。一些我们目前应用较少的Tomcat配置项说明
Tomcat初始化流程分析,Tomcat启动流程分析 Tomcat处理一次请求过程分析 servlet初始化流程
3-8Tomcat请求容器中的处理与启动过程源码实现(1).mp4
Web应用程序在Tomcat启动前就安装好 • 动态的; 使用Tomcat Manager这个Web应用程序或者操纵已经部署的Web应用程序 Tomcat Manager 是一款工具它提供基于以URL为基础的Web应用程序部署特性。也有一种工具被称为...
Tomcat启动流程分析 组件的生命周期管理 用Lifecycle管理启动、停止、关闭 Lifecycle接口预览 几个核心方法 Server中的init方法示例 为啥StandardServer没有init方法 LifecycleBase中的init与...
将tomcat加入到本地服务中去,设置tomcat的服务自动启动,这样在服务器上通过tomcat运行的项目,即使服务器重启,tomcat也可以自动重启,这样,项目也就不会宕机了。
Digester.doc Digester.doc Digester.doc Digester.doc
主要介绍了Spring Boot启动过程(四)之Spring Boot内嵌Tomcat启动的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
主要介绍了Spring Boot启动过程(五)之Springboot内嵌Tomcat对象的start的相关资料,需要的朋友可以参考下
tomcat 8.5 的启动过程文字描述和启动过程的时序图描述 1)A text description of the startup procedure 2)A UML sequence diagram of the startup procedure
3-8Tomcat请求容器中的处理与启动过程源码实现(2).mp4
Apache+Tomcat集群配置详解 把Apache安装为运行在80端口的Windows服务,... 本文仅为讲解配置过程,Apache和tomcat均工作在同一台机器上。实际部署时没有任何限制,Apache和单个tomcat可以分别部署在不同的服务器上。
大学生学习使用docker-初学者