Skip to content

Commit ce26271

Browse files
committed
BAEL-7522 Add code for Java 18 simple web server
1 parent 557d43c commit ce26271

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

  • core-java-modules/core-java-18/src/main/java/com/baeldung/simple_web_server
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.baeldung.simple_web_server;
2+
3+
import java.io.IOException;
4+
import java.net.InetSocketAddress;
5+
import java.nio.file.Path;
6+
import java.util.function.Predicate;
7+
8+
import com.sun.net.httpserver.Filter;
9+
import com.sun.net.httpserver.Headers;
10+
import com.sun.net.httpserver.HttpHandler;
11+
import com.sun.net.httpserver.HttpHandlers;
12+
import com.sun.net.httpserver.HttpServer;
13+
import com.sun.net.httpserver.Request;
14+
import com.sun.net.httpserver.SimpleFileServer;
15+
16+
public class WebServer {
17+
18+
private final InetSocketAddress address = new InetSocketAddress(8080);
19+
private final Path path = Path.of("/");
20+
21+
public static void main(String[] args) {
22+
WebServer webServer = new WebServer();
23+
HttpServer server = webServer.createWithHandler_401Response();
24+
server.start();
25+
}
26+
27+
private HttpServer createBasic() {
28+
return SimpleFileServer.createFileServer(address, path, SimpleFileServer.OutputLevel.VERBOSE);
29+
}
30+
31+
private HttpServer createWithHandler() throws IOException {
32+
HttpServer server = SimpleFileServer.createFileServer(address, path, SimpleFileServer.OutputLevel.VERBOSE);
33+
HttpHandler handler = SimpleFileServer.createFileHandler(Path.of("/Users"));
34+
server.createContext("/test", handler);
35+
return server;
36+
}
37+
38+
private HttpServer createWithHandler_401Response() {
39+
Predicate<Request> findAllowedPath = r -> r.getRequestURI()
40+
.getPath()
41+
.equals("/test/allowed");
42+
43+
HttpHandler allowedResponse = HttpHandlers.of(200, Headers.of("Allow", "GET"), "Welcome");
44+
HttpHandler deniedResponse = HttpHandlers.of(401, Headers.of("Deny", "GET"), "Denied");
45+
46+
HttpHandler handler = HttpHandlers.handleOrElse(findAllowedPath, allowedResponse, deniedResponse);
47+
48+
HttpServer server = SimpleFileServer.createFileServer(address, path, SimpleFileServer.OutputLevel.VERBOSE);
49+
server.createContext("/test", handler);
50+
return server;
51+
}
52+
53+
private HttpServer createWithFilter() throws IOException {
54+
Filter filter = SimpleFileServer.createOutputFilter(System.out, SimpleFileServer.OutputLevel.INFO);
55+
HttpHandler handler = SimpleFileServer.createFileHandler(Path.of("/Users"));
56+
return HttpServer.create(new InetSocketAddress(8080), 10, "/test", handler, filter);
57+
}
58+
59+
}

0 commit comments

Comments
 (0)