阿特我自己
[email protected]
Hello WvT
java.net.http 包与 com.sun.net.httpserver 包使用笔记
java.net.http 包与 com.sun.net.httpserver 包使用笔记

com.sun.net.httpserver 包

HttpServer 用于创建一个服务器

使用 HttpServer::create() 方法可以新建一个 HttpServer 实例
使用 HttpServer.createContext​(String path, HttpHandler handler) 创建服务器接受请求的路径 及 HttpHandler

“/” 将匹配任意 URL “http://hostname:port/*”
“/app/” 将匹配 “http://hostname:port/app/*”
”/app/foo/” 将匹配 “http://hostname:port/app/foo/*”

使用 start() 方法在新线程启动服务器

HttpHandler 用于接受服务器请求

创建 HttpHandler 的实现类,实现 handle 方法

HttpExchange 的典型生命周期如下所示

  1. getRequestMethod() —— 获取请求方式,”GET”、”POST”
  2. getRequestHeaders() —— 获取请求头
  3. getRequestBody() —— 获取请求正文,当读取完毕后输入流将会关闭
  4. 读取数据并准备输出数据
  5. getResponseHeaders() —— 获取一个 Headers 用于设置除了 content-length 以外的任何响应头
  6. sendResponseHeaders(int, long) —— 发送响应状态及 content-length
  7. getResponseBody() —— 获取用于发送响应正文的输出流,写入响应主体后,必须关闭流以终止交换

当 request 的输入流和输出流都关闭时,Exchange 将终止,在终止前请务必读取完 InputStream 的所有数据,否则可能会导致 TCP 无法进行后续交换

 

赞赏
没有标签
首页      全部      Java学习笔记      java.net.http 包与 com.sun.net.httpserver 包使用笔记

发表评论

textsms
account_circle
email

Hello WvT

java.net.http 包与 com.sun.net.httpserver 包使用笔记
com.sun.net.httpserver 包 HttpServer 用于创建一个服务器 使用 HttpServer::create() 方法可以新建一个 HttpServer 实例 使用 HttpServer.createContext​(String path, HttpHandle…
扫描二维码继续阅读
2019-08-16


没有激活的小工具