GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • java.evolved

This view

  • Original page
  • New address

GeezerVison is showing javaevolved.dev — HTTP — java.evolved

Home / Topics / HTTP
🏷 HTTP 5 patterns

Topic: HTTP

All Java patterns related to HTTP — java.evolved

Concurrency

Concurrent HTTP with virtual threads

Old ExecutorService pool = Executors.newFixedThreadPool(10); List<Future<String>> futures = urls.stream() .map(u -> pool.submit( () -> fetchUrl(u))) .toList(); // manual shutdown, blocking get()
Modern try (var exec = Executors .newVirtualThreadPerTaskExecutor()) { var results = urls.stream() .map(u -> exec.submit( () -> client.send(req(u), ofString()).body())) .toList().stream() .map(Future::join).toList(); }
hover to see modern →
JDK 21+ learn more →
I/O

Modern HTTP client

Old URL url = new URL("https://api.com/data"); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); // read lines, close streams...
Modern var client = HttpClient.newHttpClient(); var request = HttpRequest.newBuilder() .uri(URI.create("https://api.com/data")) .build(); var response = client.send( request, BodyHandlers.ofString()); String body = response.body();
hover to see modern →
JDK 11+ learn more →
I/O

WebSocket clients with java.net.http

Old WebSocketClient client = new WebSocketClient(serverUri) { @Override public void onMessage(String message) { handle(message); } }; client.connect();
Modern HttpClient.newHttpClient() .newWebSocketBuilder() .buildAsync(serverUri, new WebSocket.Listener() { @Override public CompletionStage<?> onText( WebSocket socket, CharSequence data, boolean last) { handle(data.toString()); return WebSocket.Listener.super .onText(socket, data, last); } });
hover to see modern →
JDK 11+ learn more →
I/O

Deprecated URL constructors to URI

Old URL endpoint = new URL("https://example.com/api?q=java");
Modern URI endpointUri = URI.create("https://example.com/api?q=java"); URL endpoint = endpointUri.toURL();
hover to see modern →
JDK 20+ learn more →
Tooling

Built-in HTTP server

Old // Install and configure a web server // (Apache, Nginx, or embedded Jetty) // Or write boilerplate with com.sun.net.httpserver HttpServer server = HttpServer.create( new InetSocketAddress(8080), 0); server.createContext("/", exchange -> { ... }); server.start();
Modern // Terminal: serve current directory $ jwebserver // Or use the API (JDK 18+) var server = SimpleFileServer.createFileServer( new InetSocketAddress(8080), Path.of("."), OutputLevel.VERBOSE); server.start();
hover to see modern →
JDK 18+ learn more →
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.