Tomcat8.x Request、Response创建的地方

来源:互联网 发布:黑社会2 知乎 编辑:程序博客网 时间:2024/05/19 13:18


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.Requestclass 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.Requestclass  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.RequestFacadeclass 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.ResponseFacadeclass org.apache.catalina.connector.Response{// ...public HttpServletResponse getResponse() {        if (facade == null) {            facade = new ResponseFacade(this);//!!!创建对象        }        if (applicationResponse == null) {            applicationResponse = facade;//!!!        }        return applicationResponse;    }}


0 0
原创粉丝点击