??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品美女一区二区,亚洲国产一成人久久精品,亚洲精品成人精品456http://www.aygfsteel.com/ltc603/archive/2006/08/21/64749.html阿成阿成Mon, 21 Aug 2006 03:41:00 GMThttp://www.aygfsteel.com/ltc603/archive/2006/08/21/64749.htmlhttp://www.aygfsteel.com/ltc603/comments/64749.htmlhttp://www.aygfsteel.com/ltc603/archive/2006/08/21/64749.html#Feedback0http://www.aygfsteel.com/ltc603/comments/commentRss/64749.htmlhttp://www.aygfsteel.com/ltc603/services/trackbacks/64749.html1 - 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是这样一个集合:它由一个或者多个Connectorl成Q以及一个EngineQ负责处理所有Connector所获得的客戯?br />


1.3 - Connector


一个Connector在某个指定端口上侦听客戯求,q将获得的请求交lEngine来处理,从Engine处获得回应ƈq回客户
TOMCAT有两个典型的ConnectorQ一个直接侦听来自browser的httphQ一个侦听来自其它WebServer的请?br />Coyote Http/1.1 Connector 在端?080处侦听来自客户browser的httph
Coyote JK2 Connector 在端?009处侦听来自其它WebServer(Apache)的servlet/jsp代理h


1.4 - Engine


The Engine element represents the entire request processing machinery associated with a particular Service
It receives and processes all requests from one or more Connectors
and returns the completed response to the Connector for ultimate transmission back to the client
Engine下可以配|多个虚拟主机Virtual HostQ每个虚拟主机都有一个域?br />当Engine获得一个请求时Q它把该h匚w到某个Host上,然后把该h交给该Host来处?br />Engine有一个默认虚拟主机,当请求无法匹配到M一个Host上的时候,交l该默认Host来处?br />


1.5 - Host



代表一个Virtual HostQ虚拟主机,每个虚拟L和某个网l域名Domain Name相匹?br />每个虚拟L下都可以部v(deploy)一个或者多个Web AppQ每个Web App对应于一个ContextQ有一个Context path
当Host获得一个请求时Q将把该h匚w到某个Context上,然后把该h交给该Context来处?br />匚w的方法是“最长匹配”,所以一个path==""的Context成Host的默认Context
所有无法和其它Context的\径名匚w的请求都最l和该默认Context匚w


1.6 - Context


一个Context对应于一个Web ApplicationQ一个Web Application׃个或者多个Servletl成
Context在创建的时候将Ҏ配置文g$CATALINA_HOME/conf/web.xml?WEBAPP_HOME/WEB-INF/web.xml载入Servletc?br />当Context获得hӞ在自己的映表(mapping table)中寻扄匚w的Servletc?br />如果扑ֈQ则执行该类Q获得请求的回应Qƈq回


2 - Tomcat Server的结构图



3 - 配置文g$CATALINA_HOME/conf/server.xml的说?


该文件描qC如何启动Tomcat Server




4 - Context的部|配|文件web.xml的说?


一个Context对应于一个Web AppQ每个Web App是由一个或者多个servletl成?br />当一个Web App被初始化的时候,它将用自qClassLoader对象载入“部|配|文件web.xml”中定义的每个servletc?br />它首先蝲入在$CATALINA_HOME/conf/web.xml中部|的servletc?br />然后载入在自qWeb App根目录下的WEB-INF/web.xml中部|的servletc?br />web.xml文g有两部分Qservletcd义和servlet映射定义
每个被蝲入的servletc都有一个名字,且被填入该Context的映表(mapping table)中,和某UURL PATTERN对应
当该Context获得hӞ查询mapping tableQ找到被h的servletQƈ执行以获得请求回?br />


分析一下所有的Context׃n的web.xml文gQ在其中定义的servlet被所有的Web App载入




5 - Tomcat Server处理一个httph的过E?


假设来自客户的请求ؓQ?br />http://localhost:8080/wsota/wsota_index.jsp


1) h被发送到本机端口8080Q被在那里侦听的Coyote HTTP/1.1 Connector获得
2) Connector把该h交给它所在的Service的Engine来处理,q等待来自Engine的回?br />3) Engine获得hlocalhost/wsota/wsota_index.jspQ匹配它所拥有的所有虚拟主机Host
4) Engine匚w到名为localhost的HostQ即使匹配不C把请求交l该Host处理Q因Host被定义ؓ该Engine的默认主机)
5) localhost Host获得h/wsota/wsota_index.jspQ匹配它所拥有的所有Context
6) Host匚w到\径ؓ/wsota的ContextQ如果匹配不到就把该h交给路径名ؓ""的Contextd理)
7) path="/wsota"的Context获得h/wsota_index.jspQ在它的mapping table中寻扑֯应的servlet
8) Context匚w到URL PATTERN?.jsp的servletQ对应于JspServletc?br />9) 构造HttpServletRequest对象和HttpServletResponse对象Q作为参数调用JspServlet的doGet或doPostҎ
10)Context把执行完了之后的HttpServletResponse对象q回lHost
11)Host把HttpServletResponse对象q回lEngine
12)Engine把HttpServletResponse对象q回lConnector
13)Connector把HttpServletResponse对象q回l客户browser


				
						
<!----------------------------------------------------------------------------------------------->


<web-app>


<!-- 概述Q?br /> 该文件是所有的WEB APPq的部|配|文Ӟ
每当一个WEB APP被DEPLOYQ该文g都将先被处理Q然后才是WEB APP自己?WEB-INF/web.xml
-->



<!-- +-------------------------+ -->
<!-- | servletcd义部? | -->
<!-- +-------------------------+ -->



<!-- DefaultServlet
当用LHTTPh无法匚wM一个servlet的时候,该servlet被执?br /> URL PATTERN MAPPING : /
-->

<servlet>
<servlet-name>default</servlet-name>
<servlet-class>
org.apache.catalina.servlets.DefaultServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>


<!-- InvokerServlet
处理一个WEB APP中的匿名servlet
当一个servlet被编写ƈ~译攑օ/WEB-INF/classes/中,却没有在/WEB-INF/web.xml中定义的时?br /> 该servlet被调用,把匿名servlet映射?servlet/ClassName的Ş?br /> URL PATTERN MAPPING : /servlet/*
-->

<servlet>
<servlet-name>invoker</servlet-name>
<servlet-class>
org.apache.catalina.servlets.InvokerServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>


<!-- JspServlet
当请求的是一个JSP面的时候(*.jspQ该servlet被调?br /> 它是一个JSP~译器,请求的JSP面~译成ؓservlet再执?br /> URL PATTERN MAPPING : *.jsp
-->

<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>logVerbosityLevel</param-name>
<param-value>WARNING</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>



<!-- +---------------------------+ -->
<!-- | servlet映射定义部分 | -->
<!-- +---------------------------+ -->


<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>


<!-- +------------------------+ -->
<!-- | 其它部分Q略d | -->
<!-- +------------------------+ -->

... ... ... ...

</web-app>


<!----------------------------------------------------------------------------------------------->

				
						
<!----------------------------------------------------------------------------------------------->



<!-- 启动Server
在端?005处等待关闭命?br /> 如果接受?SHUTDOWN"字符串则关闭服务?br /> -->

<Server port="8005" shutdown="SHUTDOWN" debug="0">


<!-- Listener ???
目前没有看到q里
-->

<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" debug="0"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" debug="0"/>


<!-- Global JNDI resources ???
目前没有看到q里Q先略去
-->

<GlobalNamingResources>
... ... ... ...
</GlobalNamingResources>


<!-- Tomcat的Standalone Service
Service是一lConnector的集?br /> 它们q一个Engine来处理所有Connector收到的请?br /> -->

<Service name="Tomcat-Standalone">


<!-- Coyote HTTP/1.1 Connector
className : 该Connector的实现类是org.apache.coyote.tomcat4.CoyoteConnector
port : 在端口号8080处侦听来自客户browser的HTTP1.1h
minProcessors : 该Connector先创?个线E等待客戯求,每个h׃个线E负?br /> maxProcessors : 当现有的U程不够服务客户hӞ若线EL不75个,则创建新U程来处理请?br /> acceptCount : 当现有线E已l达到最大数75Ӟ为客戯求排?br /> 当队列中h数超q?00Ӟ后来的请求返回Connection refused错误
redirectport : 当客戯求是httpsӞ把该h转发到端?443?br /> 其它属性略
-->

<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8080"
minProcessors="5" maxProcessors="75" acceptCount="100"
enableLookups="true"
redirectPort="8443"
debug="0"
connectionTimeout="20000"
useURIValidationHack="false"
disableUploadTimeout="true" />


<!-- Engine用来处理Connector收到的Httph
它将匚wh和自q虚拟LQƈ把请求{交给对应的Host来处?br /> 默认虚拟L是localhost
-->

<Engine name="Standalone" defaultHost="localhost" debug="0">


<!-- 日志c,目前没有看到Q略d -->

<Logger className="org.apache.catalina.logger.FileLogger" .../>

<!-- RealmQ目前没有看刎ͼ略去?-->

<Realm className="org.apache.catalina.realm.UserDatabaseRealm" .../>


<!-- 虚拟Llocalhost
appBase : 该虚拟主机的根目录是webapps/
它将匚wh和自qContext的\径,q把h转交l对应的Context来处?br /> -->

<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">


<!-- 日志c,目前没有看到Q略d -->

<Logger className="org.apache.catalina.logger.FileLogger" .../>


<!-- ContextQ对应于一个Web App
path : 该Context的\径名?"Q故该Context是该Host的默认Context
docBase : 该Context的根目录是webapps/mycontext/
-->

<Context path="" docBase="mycontext" debug="0"/>


<!-- 另外一个ContextQ\径名?wsota -->

<Context path="/wsota" docBase="wsotaProject" debug="0"/>


</Host>

</Engine>

</Service>

</Server>


<!----------------------------------------------------------------------------------------------->


阿成 2006-08-21 11:41 发表评论
]]>
tomcat配置手册Qserver.xmlQ——中文版http://www.aygfsteel.com/ltc603/archive/2006/08/16/63988.html阿成阿成Wed, 16 Aug 2006 12:03:00 GMThttp://www.aygfsteel.com/ltc603/archive/2006/08/16/63988.htmlhttp://www.aygfsteel.com/ltc603/comments/63988.htmlhttp://www.aygfsteel.com/ltc603/archive/2006/08/16/63988.html#Feedback0http://www.aygfsteel.com/ltc603/comments/commentRss/63988.htmlhttp://www.aygfsteel.com/ltc603/services/trackbacks/63988.html 概述

本手册包含conf/server.xml文g中所有配|指C符(directives)的参考信息,q些指示W决定了Tomcat 5的行为。本手册q不描述应该使用哪个配置指示W来完成特定的Q?请参考对应的HOW-TO文g。?br />配置元素的描q按照如下主目录来组l:

    元素Q?server />是整个配|文件的根元素,?service />代表与一个引?Engine)相关联的一l连接器(Connectors)Q?br />    q接?Connectors)-代表外部客户之间的接口。外部客户向特定的Service发送请求,q接收响应; 
    容器Q代表一些组件。这些组件的功能是处理进来的hQ生成对应的响应。引?Engine)处理一个Service的所有请求,Host处理一个特定虚拟主机的所有请求。Context处理某个特定web应用的所有请求; 
    嵌入lgQ代表可以嵌入容器的某个元素之中的元素。有些元素可以嵌入Q何容器,而另一些元素只能嵌入在Context中。?br />
Ҏ个元素,对应的文档按照如下方式组l: 
概述Q对q个特定lg的整体描q。每个组件在org.apache.catalina包中存在一个对应的Java接口Q可能有一个或多个标准实现实现了这个接口; 
属性-该元素的合法属性。一般来_q又分成公共属性和标准实现属性。公共属性是所有实C该Java接口的实现都h的属性。标准实现属性是实现了该Java接口的某个特定Javacd有的属性。必需的属性用_体标出Q?br />嵌套lgQ列举了可以合法地嵌在这个元素下的组Ӟ 
专有Ҏ-描述了该接口的标准实现支持的专有Ҏ的配置Q与每个元素cd有关Q?br />
元素Q?a target="_blank">Server  Service

q接器:HTTP/1.1  JK 

容器Q?a target="_blank">Context  Engine  Host 

嵌套lgQ?br />Default Context 
Global Resources 
Loader 
Logger 
Manager 
Realm 
Resources 
Valve 



阿成 2006-08-16 20:03 发表评论
]]>
վ֩ģ壺 ˶| | ǰ| ܿ| | Ӣɳ| | | | Ϫ| | ƽ| | Դ| ն| ɽ| | | | | ׯ| | ˳| | ֥| | ɽ| | | ո| ʯ̨| | ͤ| | Ϫ| | ī| տ| Դ| Դ| ³|