Skip to content

Instantly share code, notes, and snippets.

@gregw
Created August 3, 2016 22:11
Show Gist options
  • Save gregw/61283b91d84073d96b5da1ccce949a73 to your computer and use it in GitHub Desktop.
Save gregw/61283b91d84073d96b5da1ccce949a73 to your computer and use it in GitHub Desktop.
package org.eclipse.jetty.embedded;
import java.io.IOException;
import java.net.Socket;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.handler.AbstractHandler;
import org.eclipse.jetty.util.IO;
public class SimpleServer
{
public static void main( String[] args ) throws Exception
{
Server server = new Server(8080);
server.setHandler(new MyHandler());
server.getBean(ServerConnector.class).setIdleTimeout(2000);
server.start();
try (Socket s=new Socket("127.0.0.1",8080))
{
s.getOutputStream().write("GET / HTTP/1.1\r\nHost: localhost\r\n\r\n".getBytes());
s.getOutputStream().flush();
IO.copy(s.getInputStream(),System.out);
}
try (Socket s=new Socket("127.0.0.1",8080))
{
s.getOutputStream().write("GET / HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n".getBytes());
s.getOutputStream().flush();
IO.copy(s.getInputStream(),System.out);
}
server.stop();
}
public static class MyHandler extends AbstractHandler
{
public void handle( String target,
Request baseRequest,
HttpServletRequest request,
HttpServletResponse response ) throws IOException,
ServletException
{
baseRequest.setHandled(true);
response.setContentType("text/plain; charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
ServletOutputStream out = response.getOutputStream();
out.println("How now brown cow");
out.flush();
out.println("Now is the winter of our discontent");
out.flush();
out.println("The moon is blue to a fish in love");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment