《how tomcat work》 搬运工 charpter 3:Connector

这一章节主要是介绍了tomcat 的一个重要模块 connector,但只是一个缩减版

connector的作用是创建ServerSocket的实例serverSocket,绑定端口,监听端口,当接受到客户端请求时,就创建一个HttpProcessor实例processor,将serverSocket作为参数给HttpProcessor的实例processor.process(serverSocket)来处理请求

import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

public class HttpConnector implements Runnable {

  boolean stopped;
  private String scheme = "http";

  public String getScheme() {
    return scheme;
  }

  public void run() {
    ServerSocket serverSocket = null;
    int port = 8080;
    try {
      serverSocket =  new ServerSocket(port, 1, InetAddress.getByName("127.0.0.1"));
    }
    catch (IOException e) {
      e.printStackTrace();
      System.exit(1);
    }
    while (!stopped) {
      // Accept the next incoming connection from the server socket
      Socket socket = null;
      try {
        socket = serverSocket.accept();
      }
      catch (Exception e) {
        continue;
      }
      // Hand this socket off to an HttpProcessor
      HttpProcessor processor = new HttpProcessor(this);
      processor.process(socket);
    }
  }

  public void start() {
    Thread thread = new Thread(this);
    thread.start();
  }
}
时间: 2024-10-25 04:08:15

《how tomcat work》 搬运工 charpter 3:Connector的相关文章

《how tomcat work》 搬运工 charpter 4:Default Connector

Default Connector是Tomcat 4用的connector Default Connector的工作是等待HTTP请求,创建request和response对象,然后传给container,然后container加载servlet来进行处理 Default Connector和charpter 3里的Connector区别是: 1.connector的HttpProcessor是同步的,要等到一个请求结束后才可以处理下一个请求.而Default Connector的HttpPro

how tomcat work 搬运工(一)

charter 1 基本的服务端接收请求并处理 包和类 HttpServer  是主函数入口,通过await()方法新建ServerSock 对象实例来绑定端口,接收请求,通过请求来新建 Request 和 Response 对象实例, package com.howtomcatwork.xy; import java.net.Socket; import java.net.ServerSocket; import java.net.InetAddress; import java.io.Inp

tomcat connector连接器

Connector是Tomcat最核心的组件之一,负责处理一个WebServer最核心的连接管理.Net IO.线程(可选).协议解析和处理的工作.一.连接器介绍在开始Connector探索之路之前,先看看Connector几个关键字 NIO:Tomcat可以利用Java比较新的NIO技术,提升高并发下的Socket性能 AJP:Apache JServ Protocol,AJP的提出当然还是为了解决java亘古不变的问题——性能,AJP协议是基于包的长连接协议,以减少前端Proxy与Tomca

Servlet之Tomcat配置与启动(一)

一. 部署并启动 tomcat 服务器 1). 解压 apache-tomcat-7.0.11.zip 到一个非中文目录下 2). 配置一个环境变量 java_home(指向 JDK 安装的根目录) 或 jre_home 3). 通过双击 apache-tomcat-6.0.16\bin 目录下的 startup.bat, 启动服务器 4). 可以在浏览器中输入 localhost:8080 来检验 Tomcat 安装是否正确. 5). 若已经启动了一个 Tomcat 应用, 若再启动同一个 T

Tomcat学习 HttpConnector和HttpProcessor启动流程和线程交互

一.tomat启动流程 1.启动HttpConnector connector等待连接请求,只负责接受socket请求,具体处理过程交给HttpProcessor处理. tomcat用户只能访问到connector,能设置接受的数据的buffer大小,而不能看见HttpProcessor的处理过程. 2.创建HttpProcessor对象池 创建对象后马上调用start()方法启动processor的线程: private HttpProcessor newProcessor() { HttpP

tomcat 8优化配置

Tomcat 8 下载:wget http://apache.fayea.com/tomcat/tomcat-8/v8.0.32/bin/apache-tomcat-8.0.32.tar.gz 压缩包解压:tar -zxvf apache-tomcat-8.0.32.tar.gz 移到解压出来文件夹到 /usr 下:mv apache-tomcat-8.0.32/ /usr/program/ 为了方便,修改解压目录的名字:mv /usr/program/apache-tomcat-8.0.32/

安装Jdk,tomcat【转载】

一.下载安装对应的jdk,并配置Java环境. 官网下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.html 下载将jdk加压后放到/usr/local目录下: [[email protected] ~]#chmod 755 jdk-6u5-linux-x64.bin [[email protected] ~]# ./jdk-6u5-linux-x64.bin [[ema

JavaWeb核心编程之Tomcat安装和配置

什么是JavaWeb 在Sun的Java Servlet规范中, 对Java Web应用做了这样的定义: "Java Web应用由一组Servlet, HTML页面, 类, 以及其他可以被绑定的资源构成. 它可以在各种供应商提供的实现Servlet规范的Servlet容器中运行." Java Web应用中可以包含以下内容: 1. Servlet 2.JSP 3.实用类 4.静态文档 如: HTML, 图片等 5.描述Web应用的信息(web.xml) servlet 和Servlet容

1.Tomcat软件使用的常见问题

tomcat软件使用的常见问题 1)闪退问题 原因:tomcat软件是java语言开发的.tomcat软件启动时,会默认到系统的环境变量中查找一个名称叫JAVA_HOME的变量.这个变量的作用找到tomcat启动所需的jvm. 解决办法:到环境变量中设置JAVA_HOME的变量 JAVA_HOME= C:\Program Files\Java\jdk1.6.0_30  (注意别配置到bin目录下) 2)端口占用的错误 原因: tomcat启动所需的端口被其他软件占用了! 解决办法: a)关闭其他