Tomcat8.x Request、Response创建的地方


Tomcat8.x Request、Response创建的地方


// Request/Response创建的地方
		// org.apache.coyote.Request
		// org.apache.coyote.Response
		// org.apache.catalina.connector.Request
		// org.apache.catalina.connector.Response
		// org.apache.catalina.connector.RequestFacade
		// org.apache.catalina.connector.ResponseFacade
		// -----------1-- org.apache.coyote.Request
		class org.apache.coyote.http11.Http11Processor{
			// 构造函数
			public Http11Processor(int maxHttpHeaderSize, AbstractEndpoint<?> endpoint,int maxTrailerSize,
		            Set<String> allowedTrailerHeaders, int maxExtensionSize, int maxSwallowSize,
		            Map<String,UpgradeProtocol> httpUpgradeProtocols) {
				org.apache.coyote.Request request = new org.apache.coyote.Request(); //创建对象
				org.apache.coyote.Response response = new org.apache.coyote.Response();
			}
		}
		
		// -----------2-- org.apache.catalina.connector.Request
		class  org.apache.catalina.connector.CoyoteAdapter{
			
			// ...
			public void service(org.apache.coyote.Request req,
                    org.apache.coyote.Response res)
                    		throws Exception {
				org.apache.catalina.connector.Request request = (Request) req.getNote(ADAPTER_NOTES);
				org.apache.catalina.connector.Response response = (Response) res.getNote(ADAPTER_NOTES);
		        if (request == null) {
		        	// org.apache.catalina.connector.Connector.createRequest();
		        	request = connector.createRequest(); //!!!!! 创建对象
		            request.setCoyoteRequest(req);
		            response = connector.createResponse();
		            response.setCoyoteResponse(res);

		            // Link objects 相互关联
		            request.setResponse(response);
		            response.setRequest(request);

		            // Set as notes 设置req中
		            req.setNote(ADAPTER_NOTES, request);
		            res.setNote(ADAPTER_NOTES, response);
		        }
		        
			}
		}

		// -----------3.1-- org.apache.catalina.connector.RequestFacade
		class org.apache.catalina.connector.Request{
			
			// ...
			public HttpServletRequest getRequest() {
		        if (facade == null) {
		            facade = new RequestFacade(this);//!!!!创建对象
		        }
		        if (applicationRequest == null) {
		            applicationRequest = facade;//!!!
		        }
		        return applicationRequest;
		    }
		}
		
		// -----------3.2-- org.apache.catalina.connector.ResponseFacade
		class org.apache.catalina.connector.Response{
			
			// ...
			public HttpServletResponse getResponse() {
		        if (facade == null) {
		            facade = new ResponseFacade(this);//!!!创建对象
		        }
		        if (applicationResponse == null) {
		            applicationResponse = facade;//!!!
		        }
		        return applicationResponse;
		    }
		}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值