
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.