java httpserver stop_java内置HttpServer服务器的使用

HttpServer是JDK1.6以后内置的HTTP服务器,位置在rt.jar的com.sun.net.httpserver包下。

使用HttpServer实现HTTP服务器主要涉及下面几个类:

1.HttpServer:表示一个服务器实例,需要绑定一个IP地址和端口号。(HttpsServer是其子类,处理https请求)

2.HttpContext:服务器监听器的上下文,需要配置用于匹配URI的公共路径和用来处理请求的HttpHandler

(可以创建多个 HttpContext,一个 HttpContext 对应一个 HttpHandler,不同的 URI 请求,根据添加的 HttpContext 监听器,分配到对应的 HttpHandler 处理请求)

3.HttpHandler:上下文对应的http请求处理器

4.HttpExchange:监听器回调时传入的参数,封装了http请求和响应的所有数据操作

在使用eclipse创建项目时,如果添加httpserver的包时显示找不到httpserver包是因为sun.net包里的类eclipse默认禁止使用。

解决方法:

工程上右键->工程属性->java builder path->Libraries标签,点击JRE System Library里面的Access rules,添加 com/sun/net/httpserver/*** 为accessible,如果该项存在,就edit

74db02eeb710?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

Demo代码:

package httpservice;

import java.net.InetSocketAddress;

import com.sun.net.httpserver.HttpServer;

public class MyHttpService {

//启动后访问:http://localhost:8888/test

public static void main(String[] args) throws Exception {

*//创建http服务器,绑定本地8888端口*

HttpServer httpServer = HttpServer.create(new InetSocketAddress(8888), 0);

*//创建上下文监听,拦截包含/test的请求*

httpServer.createContext("/test", new TestHttpHandler());

httpServer.start();

}

}

package httpservice;

import java.io.IOException;

import java.io.OutputStream;

import com.sun.net.httpserver.HttpExchange;

import com.sun.net.httpserver.HttpHandler;

public class TestHttpHandler implements HttpHandler {

@Override

public void handle(HttpExchange exchange) throws IOException {

String response = "test message";

exchange.sendResponseHeaders(200, 0);

OutputStream os = exchange.getResponseBody();

os.write(response.getBytes("UTF-8"));

os.close();

}

}

1.HttpServer 常用方法:

// 重新绑定地址和端口

void bind​(InetSocketAddress addr, int backlog)

// 获取当前绑定的地址

InetSocketAddress getAddress​()

/**

* 创建监听的上下文, 请求 URI 根路径的匹配, 根据不同的 URI 根路径选择不同的 HttpHandler 处理请求,

* 路径必须以 "/" 开头。路径 "/" 表示匹配所有的请求 URI(没有其他更具体的匹配路径除外)。

*/

HttpContext createContext​(String path)

HttpContext createContext​(String path, HttpHandler handler)

// 移除上下文监听

void removeContext​(HttpContext context)

void removeContext​(String path)

// 设置请求的线程执行器, 设置为 null 表示使用默认的执行器

void setExecutor​(Executor executor)

Executor getExecutor​()

// 启动服务

void start​()

// 最长等待指定时间后停止服务

void stop​(int delay)

2.HttpContext

HttpServer httpServer = HttpServer.create(...);

/*

* 上下文监听器对应的 URI 根路径,必须以 "/" 开头,

* 表示以 "/xxx" 开头的 URI 请求都交给对应的 httpHandler 处理,

* "/" 表示匹配所有的请求, 一个请求只会交给 path 最匹配的一个上下文去处理(不能重复处理)

*/

String path = "/xxx";

// 可以创建多个,以实现更细致的 URI 路径匹配来分开处理来自不同 URI 路径的请求

httpServer.createContext(path, new HttpHandler() {

@Override

public void handle(HttpExchange httpExchange) throws IOException {

// 处理匹配当前上下文 path 的请求

}

});

3.HttpHandler ( HttpExchange )

// 获取请求的 URI, 请求链接除去协议和域名端口后的部分, 如: http://www.abc.com/aa/bb, URI 为 /aa/bb

URI getRequestURI​()

// 获取请求客户端的 IP 地址

InetSocketAddress getRemoteAddress​()

// 获取请求协议, 例如: HTTP/1.1

String getProtocol​()

// 获取请求的方法, "GET", "POST" 等

String getRequestMethod​()

// 获取所有的请求头

Headers getRequestHeaders​()

// 以输入流的方式获取请求内容

InputStream getRequestBody​()

// 获取响应头的 Map, 要添加头, 获取到 headers 后调用 add(key, value) 方法添加

Headers getResponseHeaders​()

// 发送响应头, 并指定 响应code 和 响应内容的长度

void sendResponseHeaders​(int rCode, long responseLength)

// 获取响应内容的输出流, 响应内容写到该流

OutputStream getResponseBody​()

// 关闭处理器, 同时将关闭请求和响应的输入输出流(如果还没关闭)

void close​()

// 获取此请求对应的上下文对象

HttpContext getHttpContext​()

// 获取收到请求的本地地址

InetSocketAddress getLocalAddress​()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值