Skip to content

Instantly share code, notes, and snippets.

@sunng87
Last active September 3, 2023 18:30
Show Gist options
  • Save sunng87/c3439bd1dbafc50062c520ee529929a4 to your computer and use it in GitHub Desktop.
Save sunng87/c3439bd1dbafc50062c520ee529929a4 to your computer and use it in GitHub Desktop.
Dead simple setup of Jetty servers
///usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS org.eclipse.jetty:jetty-server:11.0.15
//DEPS org.eclipse.jetty:jetty-servlet:11.0.15
import static java.lang.System.*;
import java.io.IOException;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Response;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.servlet.ServletHandler;
import org.eclipse.jetty.servlet.ServletContextHandler;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
public class Jetty11 {
public static class EchoHandler extends ServletHandler {
@Override
public void doHandle(String target,
Request baseRequest,
HttpServletRequest request,
HttpServletResponse response)
throws IOException {
baseRequest.setHandled(true);
response.getWriter().println("data");
}
}
public static void main(String... args) throws Exception {
var server = new Server(3000);
var connector = new ServerConnector(server);
server.addConnector(connector);
server.setHandler(new EchoHandler());
server.start();
}
}
///usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS org.eclipse.jetty:jetty-server:12.0.1
import static java.lang.System.*;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Response;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.io.Content;
import org.eclipse.jetty.util.Callback;
public class Jetty12 {
public static class EchoHandler extends Handler.Abstract.NonBlocking {
@Override
public boolean handle(Request req, Response resp, Callback cb) {
Content.Sink.write(resp, true, "data", cb);
return true;
}
}
public static void main(String... args) throws Exception {
var server = new Server(3000);
var connector = new ServerConnector(server);
server.addConnector(connector);
var context = new ContextHandler("/");
context.setHandler(new EchoHandler());
server.setHandler(context);
server.start();
}
}
@sbordet
Copy link

sbordet commented Sep 3, 2023

@sunng87 great, ping me when you have the data and need help or just to discuss. 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment