Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class HttpServer extends Object
HttpsServer
реализует сервер, который обрабатывает запросы HTTPS. Один или больше HttpHandler
объекты должны быть связаны с сервером, чтобы обработать запросы. Каждый такой HttpHandler регистрируется в корневом пути URI, который представляет расположение приложения или службы на этот сервер. Отображение обработчика к HttpServer инкапсулируется a HttpContext
объект. HttpContexts создаются, вызывая createContext(String,HttpHandler)
. Любой запрос, для которого не может быть найден никакой обработчик, отклоняется с 404 ответами. Управление потоками может быть сделано внешнее к этому объекту, обеспечивая a Executor
объект. Если ни одному не обеспечивают, реализация по умолчанию используется.
Отображение URI запроса к путям HttpContext
Когда запрос HTTP получается, соответствующий HttpContext (и обработчик) располагается, находя контекст, путь которого является самым длинным префиксом соответствия пути URI запроса. Пути являются соответствующими буквально, что означает, что строки являются сравненным случаем ощутимо, и без преобразования в или от любых закодированных форм. Например. Учитывая HttpServer со следующим сконфигурированным HttpContexts.
Контекст | Путь контекста |
ctx1 | "/" |
ctx2 | "/приложения /" |
ctx3 | "/apps/foo /" |
следующая таблица показывает некоторые URI запроса и который, если какой-либо контекст они соответствовали бы с.
URI запроса | Контекст соответствий |
"http://foo.com/apps/foo/bar" | ctx3 |
"http://foo.com/apps/Foo/bar" | никакое соответствие, неправильный случай |
"http://foo.com/apps/app1" | ctx2 |
"http://foo.com/foo" | ctx1 |
Отметьте об отставаниях сокета
Связывая с адресом и номером порта, приложение может также определить целочисленный неудовлетворенный параметр. Это представляет максимальное количество входящих соединений TCP, которые система поставит в очередь внутренне. Соединения ставятся в очередь, в то время как они ожидают, чтобы быть принятыми HttpServer. Когда предел достигается, дальнейшие соединения могут быть отклонены (или возможно проигнорированы) базовой реализацией TCP. Установка правильного неудовлетворенного значения является компромиссом между эффективным использованием ресурсов в уровне TCP (не устанавливающий это слишком высоко) и позволяющий соответствующую пропускную способность входящих запросов (не устанавливающий это слишком низко).
Модификатор | Конструктор и Описание |
---|---|
protected |
HttpServer() |
Модификатор и Тип | Метод и Описание |
---|---|
abstract void |
bind(InetSocketAddress addr, int backlog)
Связывает в настоящий момент несвязанный HttpServer с данным адресом и номером порта.
|
static HttpServer |
create()
создает экземпляр HttpServer, который первоначально не связывается ни с каким локальным адресом/портом.
|
static HttpServer |
create(InetSocketAddress addr, int backlog)
Создайте a
HttpServer экземпляр, который свяжет с указанным InetSocketAddress (IP-адрес и номер порта), максимальное отставание может также быть определено. |
abstract HttpContext |
createContext(String path)
Создает HttpContext, первоначально не определяя обработчик.
|
abstract HttpContext |
createContext(String path, HttpHandler handler)
Создает HttpContext.
|
abstract InetSocketAddress |
getAddress()
возвращает адрес, на котором слушает этот сервер
|
abstract Executor |
getExecutor()
возвраты, которым возражает Исполнитель этого сервера, были ли Вы определены с
setExecutor(Executor) , или null если ни один не был определен. |
abstract void |
removeContext(HttpContext context)
Удаляет данный контекст из сервера.
|
abstract void |
removeContext(String path)
Удаляет контекст, идентифицированный данным путем от сервера.
|
abstract void |
setExecutor(Executor executor)
наборы этот сервер
Executor объект. |
abstract void |
start()
Запускает этот сервер в новом фоновом потоке.
|
abstract void |
stop(int delay)
остановки этот сервер, закрывая сокет слушания и отвергание любых новых обменов от того, чтобы быть обработанным.
|
public static HttpServer create() throws IOException
HttpServerProvider
Сервер должен быть связан, используя bind(InetSocketAddress,int)
прежде, чем это сможет использоваться.IOException
public static HttpServer create(InetSocketAddress addr, int backlog) throws IOException
HttpServer
экземпляр, который свяжет с указанным InetSocketAddress
(IP-адрес и номер порта), максимальное отставание может также быть определено. Это - максимальное количество входящих соединений с очередями, чтобы позволить на сокете слушания. Соединения TCP с очередями, превышающие этот предел, могут быть отклонены реализацией TCP. HttpServer получается от в настоящий момент установленный HttpServerProvider
addr
- адрес, чтобы слушать на, если null
тогда свяжите (), должен быть вызван, чтобы установить адресbacklog
- отставание сокета. Если это значение меньше чем или равно нулю, то системное значение по умолчанию используется.BindException
- если сервер не может связать с требуемым адресом, или если сервер уже связывается.IOException
public abstract void bind(InetSocketAddress addr, int backlog) throws IOException
addr
- адрес, чтобы слушать наbacklog
- отставание сокета. Если это значение меньше чем или равно нулю, то системное значение по умолчанию используется.BindException
- если сервер не может связать с требуемым адресом или если сервер уже связывается.NullPointerException
- если addr null
IOException
public abstract void start()
public abstract void setExecutor(Executor executor)
Executor
объект. Исполнитель должен быть установлен прежде start()
вызывается. Все запросы HTTP обрабатываются в задачах, данных исполнителю. Если этот метод не вызывают (прежде, чем запустятся ()), или если его вызывают с a null
Исполнитель, затем реализация по умолчанию используется, который использует поток, который создавался start()
метод.executor
- Исполнитель, чтобы установить, или null
для реализации по умолчаниюIllegalStateException
- если сервер уже запускаетсяpublic abstract Executor getExecutor()
setExecutor(Executor)
, или null
если ни один не был определен.null
если не набор.public abstract void stop(int delay)
delay
- максимальное время в секундах, чтобы ожидать до обменов закончилось.IllegalArgumentException
- если задержка является меньше чем нуль.public abstract HttpContext createContext(String path, HttpHandler handler)
removeContext(String)
метод. Путь определяет корневой путь URI для этого контекста. Первый символ пути должен быть '/'.
Краткий обзор класса описывает, как URI входящего запроса отображаются на экземпляры HttpContext.
path
- корневой URI соединяет каналом, чтобы связать контекст сhandler
- обработчик, чтобы вызвать для входящих запросов.IllegalArgumentException
- если путь недопустим, или если контекст уже существует для этого путиNullPointerException
- если или путь, или обработчик null
public abstract HttpContext createContext(String path)
HttpContext.setHandler(HttpHandler)
. HttpContext представляет отображение с пути URI на обработчик обмена на этом HttpServer. После того, как создаваемый, и когда обработчик был установлен, все запросы, полученные сервером для пути, будут обработаны, вызывая объект-обработчик. Контекст идентифицируется путем, и может позже быть удален из сервера, используя это с removeContext(String)
метод. Путь определяет корневой путь URI для этого контекста. Первый символ пути должен быть '/'.
Краткий обзор класса описывает, как URI входящего запроса отображаются на экземпляры HttpContext.
path
- корневой URI соединяет каналом, чтобы связать контекст сIllegalArgumentException
- если путь недопустим, или если контекст уже существует для этого путиNullPointerException
- если путь null
public abstract void removeContext(String path) throws IllegalArgumentException
path
- путь обработчика, чтобы удалитьIllegalArgumentException
- если никакой обработчик, соответствующий этому пути, не существует.NullPointerException
- если путь null
public abstract void removeContext(HttpContext context)
context
- контекст, чтобы удалитьNullPointerException
- если контекст null
public abstract InetSocketAddress getAddress()
Авторское право © 2005, 2011, Oracle и/или его филиалы. Все права защищены.