public abstract class HttpExchange extends Object
必须关闭HttpExchange
才能释放或重用基础资源。 未能关闭交易所的效果未定。
Modifier and Type | Field and Description |
---|---|
static String |
REQUEST_CIPHER_SUITE
标准属性:通过HTTPS接收请求时的密码套件值
|
static String |
REQUEST_KEY_SIZE
标准属性:通过HTTPS接收请求时算法的位大小
|
static String |
REQUEST_X509CERTIFICATE
标准属性:与请求相关联的SSL证书(如果有)
|
Constructor and Description |
---|
HttpExchange() |
Modifier and Type | Method and Description |
---|---|
abstract void |
addResponseHeader(String name, String value)
添加具有给定名称和值的响应头。
|
abstract void |
close()
必须调用这个结束交换。
|
abstract Object |
getAttribute(String name)
返回与此
HttpExchange 。
|
abstract Set<String> |
getAttributeNames()
提供与此
HttpExchange 所有属性名称。
|
abstract String |
getContextPath()
返回应用程序中所有端点的上下文路径。
|
abstract HttpContext |
getHttpContext()
返回此交易所的 HttpContext 。
|
abstract InetSocketAddress |
getLocalAddress()
返回收到请求的未解决的本地地址。
|
abstract String |
getPathInfo()
返回Web服务路径后面的额外路径信息,但在请求URI中的查询字符串之前,将以“/”字符开头。
|
abstract String |
getProtocol()
从请求中以
协议/ majorVersion.minorVersion的形式返回协议串。
|
abstract String |
getQueryString()
返回路径后请求URI中包含的查询字符串。
|
abstract InetSocketAddress |
getRemoteAddress()
返回调用此请求的远程实体的未解析地址。
|
abstract InputStream |
getRequestBody()
返回可以从中读取请求主体的流。
|
abstract String |
getRequestHeader(String name)
返回指定请求头的值。
|
abstract Map<String,List<String>> |
getRequestHeaders()
返回包含此请求中包含的HTTP标头的不可变地图。
|
abstract String |
getRequestMethod()
获取HTTP请求方法
|
abstract String |
getRequestURI()
将请求的URI的一部分从协议名称返回到HTTP请求的第一行中的查询字符串。
|
abstract OutputStream |
getResponseBody()
返回响应主体必须写入的流。
|
abstract Map<String,List<String>> |
getResponseHeaders()
返回一个可变地图,可以存储HTTP响应标头,哪个将作为此响应的一部分进行传输。
|
abstract String |
getScheme()
返回用于创建此请求的方案的名称,例如:http或https。
|
abstract Principal |
getUserPrincipal()
返回代表此HttpExchange的身份验证用户的 HttpExchange 。
|
abstract boolean |
isUserInRole(String role)
指示经过身份验证的用户是否包含在指定的逻辑“角色”中。
|
abstract void |
setStatus(int status)
设置响应的HTTP状态代码。
|
public static final String REQUEST_CIPHER_SUITE
类型:字符串
public static final String REQUEST_KEY_SIZE
类型:整数
public static final String REQUEST_X509CERTIFICATE
类型:java.security.cert.X509Certificate []将此数组的顺序定义为以信任的升序排列。 链中的第一个证书是由客户端设置的一个证书,接下来是用于验证第一个证书的证书,依此类推。
public abstract Map<String,List<String>> getRequestHeaders()
地图中的键不区分大小写。
public abstract String getRequestHeader(String name)
getRequestHeaders()
)。
name
- 请求标头的名称
public abstract Map<String,List<String>> getResponseHeaders()
地图中的键不区分大小写。
public abstract void addResponseHeader(String name, String value)
name
- 标题的名称
value
- 附加标头值。
如果它包含八位位组字符串,则应根据RFC 2047(http://www.ietf.org/rfc/rfc2047.txt)进行编码,
getResponseHeaders()
public abstract String getRequestURI()
public abstract String getContextPath()
上下文路径用于计算端点地址。 见HttpContext.getPath()
HttpContext.getPath()
public abstract String getRequestMethod()
public abstract HttpContext getHttpContext()
HttpContext
。
容器将请求与关联的Endpoint的HttpContext进行匹配
public abstract void close() throws IOException
IOException
- 如果有任何I / O错误
public abstract InputStream getRequestBody() throws IOException
IOException
- 请求处理中是否有任何I / O错误
public abstract OutputStream getResponseBody() throws IOException
IOException
- 响应处理期间是否有任何I / O错误
public abstract void setStatus(int status)
在调用getResponseBody()
之前必须调用此方法。
status
- 要发送的响应代码
getResponseBody()
public abstract InetSocketAddress getRemoteAddress()
public abstract InetSocketAddress getLocalAddress()
public abstract String getProtocol()
public abstract String getScheme()
public abstract String getPathInfo()
public abstract String getQueryString()
public abstract Object getAttribute(String name)
HttpExchange
。
然后,JAX-WS处理程序和端点可以通过MessageContext
访问属性 。
Servlet容器必须公开MessageContext.SERVLET_CONTEXT
, MessageContext.SERVLET_REQUEST
和MessageContext.SERVLET_RESPONSE
为属性。
如果容器使用HTTPS接收到请求,则必须将以下信息作为属性公开。 这些属性是REQUEST_CIPHER_SUITE
和REQUEST_KEY_SIZE
。 如果存在与请求相关联的SSL证书,则必须使用REQUEST_X509CERTIFICATE
进行公开
name
- 属性名称
public abstract Set<String> getAttributeNames()
HttpExchange
所有属性名称。
getAttribute(String)
public abstract Principal getUserPrincipal()
HttpExchange
。
public abstract boolean isUserInRole(String role)
role
- 指定角色的名称