
A simplified implementation of the sun http server for JDK11.
This library simplifies complex operations for both the server, exchange, and handlers.
Documentation • Issues
Compiled binaries can be found on Maven Central.
For projects built locally, compiled binaries can also be found in releases.
Simplified exchange methods for:
- Parsing HTTP
GET
/POST
withmultipart/form-data
support. - Output stream writing with
#send
. - Sending gzip compressed responses.
- Sending files
SimpleHttpHandler handler = new SimpleHttpHandler(){ @Override public void handle(SimpleHttpExchange exchange){ Map POST = exchange.getPostMap(); MultipartFormData form = exchange.getMultipartFormData(); Record record = form.getRecord("record"); FileRecord file = (FileRecord) form.getRecord("file"); exchange.send(new File("OK.png"), true); } };
Out of the box support for:
- HTTP Cookies
- HTTP Sessions
- Multithreaded Servers
SimpleHttpServer server = new SimpleHttpServer(8080); server.setHttpSessionHandler(new HttpSessionHandler()); HttpHandler handler = new HttpHandler(){ @Override public void handle(HttpExchange exchange){ HttpSession session = server.getHttpSession(exchange); String session_id = session.getSessionID(); Map<String,String> cookies = exchange.getCookies(); exchange.close(); } };
Easy to use handlers:
- Redirect Handler
- Predicate Handler
- File Handler
- Server-Sent-Events Handler
- Temporary Handler
- Throttled Handler
RedirectHandler redirect = new RedirectHandler("https://github.com/"); FileHandler fileHandler = new FileHandler(); fileHandler.addFile(new File("index.html")); fileHandler.addDirectory(new File("/site")) SSEHandler SSE = new SSEHandler(); SSE.push("Server sent events!"); ThrottledHandler throttled = new ThrottledHandler(new HttpHandler(), new ServerExchangeThrottler())
- Found a bug? Open a new issue.
- Want to contribute? Create a fork and open a pull request.