Tomcat脚本及HTTP请求过程跟踪

server.xml

<server  port="8005" shutdown="SHUTDOWN"> 监听Tomcat关闭的动作

       <listener className="org.apache.catalina.core.AprLifeCycleListener"/>

       <service name="catalina">

                <connector port="80" maxhttpHeaderSize="8192" maxThreads(最大的线程数)="150" minSpareThreads(初始化创建的最小线程数)="25"          

maxSpareThreads(超过此值,tomcat开始关闭不需要的连接)="75" enableLookups(反查域名,为了效率应设置为false)="false" redirectPort(当80不可用时,换为8443)="8443" acceptCount(超过最大连接数时,可以放在等待队列中的连接数)="100"  connectionTimeout="20000"  disableUploadTime="true"/>  connector表示client与server的连接

               <connector port="8009" enableLookUp="false" redirectPort="8999"  protocol="AJP/1.3"/>该Connector用于集群

                <engine name="catalina" defaultHost="localHost">

                              <realm className="org.apache.catalina.realm.userDataBaseRealm"/>用于存放用户名和密码及Role的数据库

                              <host name="localhost" appBase(应用程序基本目录)="webapps" unpackWars(true表示war包自动解压)="true" autoDeploy="true" xmlValidation="false" xmlNameSpaceAware="false"/> host表示一个虚拟主机             

                </engine> severice中的请求处理机,接收和处理来自connector的请求

       <service>

</server>

<context docBase="D:/tomcat/webapps/tst">

             <WatchedResource>WEB-INF/web.xml</WatchedResource>这里将该context对应的web.xml对应

             <manager className="org.apache.catalina.session.standardManager" MaxActiveSession="-1" MaxInactiveInternal="60" pathname="/"/>

</context> context可以放到server.xml可以单独成文放到context.xml中,context可以用来设置session的数据及过期时间等

 

A service element represents the combination of one or more connector components that share a single engine service.

Engine: it receives and processs all requests from one or more connectors and returns the completed response to the connector for ultimate transmission back to the client.

每个Context Element对应一个Web App,每个Web App由一个或多个servlet组成 servlet的定义来自于web.xml

web.xml

<servlet> servlet定义,包括名字和class

           <servlet-name>jsp</servle-name>

           <servlet-class>org.apache.jsper.serlvet.Jspservlet</servlet-class>

</servlet>

<service-mapping> servlet 映射

            <servlet-name>jsp</servlet-name>

             <url-pattern>*.jsp</url-pattern>

</service-mapping>

         

Tomcat Server处理一个HTTP请求的过程:http://localhost:80//usota/index.jsp

(1)请求被发送到本机端口80,被在那里进行监听的loyote http/1.1 connector获得

(2)connector将请求交给Engine,并等待Engine的返回

(3)Engine获得localhost:80//usota/index.jsp请求,匹配它所拥有的host

(4)Engine匹配到名为localHost的Host,即使不匹配将该请求给它,因为只有一个Host

(5)Host匹配到路径为/usota的Context,若匹配不到则到路径为“”的context中处理

(6)path=“/usota”的context获得请求index.jsp,在它的servlet mapping table中找到它对应的servlet

(7)context匹配到URL pattern为*.jsp的对应 jspServlet类

(8)构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法

(9)context把执行完成的httpServletResponse对象返回到Host

(10)Host把该response对象返回给Engine

(11)Engine继续将该response对象返回给Connector,继而返回到Browser中

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值