tomcat 实例
来源:互联网 发布:华南师范网络教育证书 编辑:程序博客网 时间:2024/05/22 06:49
1.Tomcat Server处理一个http请求的过程
假设来自客户的请求为: http://localhost:8080/macy/index.jsp
1) 请求发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得。
2) Connector把该请求交给它所在Service的Engine来处理,并等待来自Engine的响应。
3) Engine获得请求localhost/macy/index.jsp,匹配它所拥有的所有虚拟主机Host。
4) Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认虚拟主机)。
5) localhost Host获得请求/macy/index.jsp,匹配它所拥有的所有Context。
6) Host匹配到路径为/macy的Context(如果匹配不到就把该请求交给路径名为""的Context去处理)。
7) path="/macy"的Context获得请求/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。
2.该文件描述了如何启动Tomcat Server
<!---------------------------------------------------------------------------------->
<!-- 启动Server
在端口8005处等待关闭命令
如果接受到"SHUTDOWN"字符串则关闭服务器 -->
<Server port="8005"shutdown="SHUTDOWN" debug="0">
<!-- Listener -->
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"debug="0"/>
<ListenerclassName="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"debug="0"/>
<!-- Global JNDI resources -->
<GlobalNamingResources>
... ... ... ...
</GlobalNamingResources>
<!-- Tomcat的Standalone Service。Service是一组Connector的集合,它们共用一个Engine来处理所有Connector收到的请求 -->
<Service name="Tomcat-Standalone">
<!-- Coyote HTTP/1.1 Connector
className: 该Connector的实现类是
org.apache.coyote.tomcat4.CoyoteConnector。
port : 在端口号8080处侦听来自客户browser的HTTP1.1请求。
minProcessors : 该Connector先创建5个线程等待客户请求,每个请求由一
个线程负责。
maxProcessors : 当现有的线程不够服务客户请求时,若线程总数不足75个,则创建新线程来处理请求。
acceptCount : 当现有线程已经达到最大数75时,为客户请求排队
当队列中请求数超过100时,后来的请求返回Connection refused错误
redirectport : 当客户请求是https时,把该请求转发到端口8443去 -->
<ConnectorclassName="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收到的Http请求
它将匹配请求和自己的虚拟主机,并把请求转交给对应的Host来处理
默认虚拟主机是localhost -->
<Engine name="Standalone"defaultHost="localhost" debug="0">
<!-- 日志类 -->
<LoggerclassName="org.apache.catalina.logger.FileLogger" .../>
<!—Realm -->
<RealmclassName="org.apache.catalina.realm.UserDatabaseRealm" .../>
<!-- 虚拟主机localhost
appBase :该虚拟主机的根目录是webapps/
它将匹配请求和自己的Context的路径,并把请求转交给对应的Context来处理 -->
<Host name="localhost"debug="0" appBase="webapps" unpackWARs="true"autoDeploy="true">
<!-- 日志类 -->
<LoggerclassName="org.apache.catalina.logger.FileLogger" .../>
<!-- Context,对应于一个Web应用程序
path :该Context的路径名是"",故该Context是该Host的默认Context
docBase :该Context的根目录是webapps/macy/ -->
<Context path=""docBase="macy" debug="0"/>
<!-- 另外一个Context,路径名是/cute -->
<Context path="/cute"docBase="d:\tly\cute" debug="0"/>
</Host>
</Engine>
</Service>
</Server>
<!---------------------------------------------------------------------------------->
- tomcat 实例
- Tomcat安全验证实例
- tomcat多实例配置
- **Apache整合 Tomcat实例
- Tomcat多实例部署
- IIS+Tomcat配置实例
- Tomcat 开发Comet实例
- Tomcat多实例
- Tomcat多实例部署
- tomcat用户配置实例
- Tomcat多实例部署
- tomcat 虚拟主机配置实例
- Tomcat单机多实例
- Tomcat单机多实例
- 实例 Tomcat 集群配置
- Tomcat-----CDI编程实例
- Tomcat 多实例
- tomcat 多实例部署
- 32 timers 的 autoreload
- 加快推进汽车安全自动保护器产业化
- Assert && De-assert
- 子类对象可以直接转化为基类,而基类对象不能直接转化为子类对象
- java 3.1
- tomcat 实例
- spark安装
- Struts2教程2:处理一个form多个submit
- flex--FlexGlobals.topLevelApplication使用
- 网络编程CFSocketRef
- ruby 存取器
- C#窗体程序在win7下运行时 控件无win7 方式
- tomcat6数据库连接池配置
- 17个常用代码整理