HTTP轻量级服务器

Home / Article MrLee 2015-1-2 3244

如果想开发HTTP服务端不想用容器TOMCAT或者APACHE之类的,那么下面这个绝对是你最佳的选择!
package com.lee.java;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.util.concurrent.Executors;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
import com.sun.net.httpserver.spi.HttpServerProvider;
public class MyHttpServer {
	public static void httpserverService() throws IOException {
		HttpServerProvider provider = HttpServerProvider.provider();
		HttpServer httpserver = provider.createHttpServer(
				new InetSocketAddress(80), 100);
		httpserver.createContext("/", new MyHttpHandler());
		httpserver.setExecutor(Executors.newCachedThreadPool());
		httpserver.start();
		System.out.println("server started");
	}
	// Http请求处理类
	static class MyHttpHandler implements HttpHandler {
		public void handle(HttpExchange httpExchange) throws IOException {
			InputStream in = httpExchange.getRequestBody(); // 获得输入流
			BufferedReader reader = new BufferedReader(
					new InputStreamReader(in));
			String temp = null;
			while ((temp = reader.readLine()) != null) {
				System.out.println("client request:" + temp);
			}
			OutputStream out = httpExchange.getResponseBody(); // 获得输出流
			byte[] data = "HTTP轻量级服务器欢迎使用HttpServer!"
					.getBytes();
			httpExchange.sendResponseHeaders(200, data.length); // 设置响应头属性及响应信息的长度
			out.write(data);
			out.flush();
			httpExchange.close();
		}
	}
	public static void main(String[] args) throws IOException {
		httpserverService();
	}
}
JDK7不含有这个jar包需要手动下载添加到工程才能编译! com.sun.net.httpserver.jar

本文链接:https://www.it72.com/603.htm

推荐阅读
最新回复 (0)
返回