WEB开发网
开发学院软件开发Java Tomcat 系统架构与设计模式,第 1 部分: 工作原理... 阅读

Tomcat 系统架构与设计模式,第 1 部分: 工作原理

 2010-05-21 00:00:00 来源:WEB开发网   
核心提示: 解析 socket 的过程在 process 方法中,process 方法的代码片段如下:清单 9. HttpProcessor.processprivatevoidprocess(Socketsocket){booleanok=true;booleanfinishResponse=true;S

解析 socket 的过程在 process 方法中,process 方法的代码片段如下:

清单 9. HttpProcessor.process

 private void process(Socket socket) { 
  boolean ok = true; 
  boolean finishResponse = true; 
  SocketInputStream input = null; 
  OutputStream output = null; 
  try { 
    input = new SocketInputStream(socket.getInputStream(),connector.getBufferSize()); 
  } catch (Exception e) { 
    log("process.create", e); 
    ok = false; 
  } 
  keepAlive = true; 
  while (!stopped && ok && keepAlive) { 
    finishResponse = true; 
    try { 
      request.setStream(input); 
      request.setResponse(response); 
      output = socket.getOutputStream(); 
      response.setStream(output); 
      response.setRequest(request); 
      ((HttpServletResponse) response.getResponse()) 
  .setHeader("Server", SERVER_INFO); 
    } catch (Exception e) { 
      log("process.create", e); 
      ok = false; 
    } 
    try { 
      if (ok) { 
        parseConnection(socket); 
        parseRequest(input, output); 
        if (!request.getRequest().getProtocol().startsWith("HTTP/0")) 
          parseHeaders(input); 
        if (http11) { 
          ackRequest(output); 
          if (connector.isChunkingAllowed()) 
            response.setAllowChunking(true); 
        } 
      } 
    。。。。。。 
    try { 
      ((HttpServletResponse) response).setHeader 
        ("Date", FastHttpDateFormat.getCurrentDate()); 
      if (ok) { 
        connector.getContainer().invoke(request, response); 
      } 
      。。。。。。 
    } 
    try { 
      shutdownInput(input); 
      socket.close(); 
    } catch (IOException e) { 
      ; 
    } catch (Throwable e) { 
      log("process.invoke", e); 
    } 
  socket = null; 
} 

上一页  5 6 7 8 9 10 

Tags:Tomcat 架构

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接