HelloWebServer.java 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package hello;
  2. import java.io.IOException;
  3. import javax.servlet.ServletException;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. import org.eclipse.jetty.server.Handler;
  7. import org.eclipse.jetty.server.HttpConfiguration;
  8. import org.eclipse.jetty.server.HttpConnectionFactory;
  9. import org.eclipse.jetty.server.Request;
  10. import org.eclipse.jetty.server.Server;
  11. import org.eclipse.jetty.server.ServerConnector;
  12. import org.eclipse.jetty.server.handler.AbstractHandler;
  13. import org.eclipse.jetty.server.handler.AbstractHandlerContainer;
  14. /**
  15. * An implementation of the TechEmpower benchmark tests using the Jetty web
  16. * server.
  17. */
  18. public final class HelloWebServer
  19. {
  20. public static void main(String[] args) throws Exception
  21. {
  22. Server server = new Server(8080);
  23. ServerConnector connector = server.getBean(ServerConnector.class);
  24. HttpConfiguration config = connector.getBean(HttpConnectionFactory.class).getHttpConfiguration();
  25. config.setSendDateHeader(true);
  26. config.setSendServerVersion(true);
  27. PathHandler pathHandler = new PathHandler();
  28. server.setHandler(pathHandler);
  29. server.start();
  30. server.join();
  31. }
  32. public static class PathHandler extends AbstractHandler
  33. {
  34. JsonHandler _jsonHandler=new JsonHandler();
  35. PlainTextHandler _plainHandler=new PlainTextHandler();
  36. public PathHandler()
  37. {
  38. addBean(_jsonHandler);
  39. addBean(_plainHandler);
  40. }
  41. @Override
  42. public void setServer(Server server)
  43. {
  44. super.setServer(server);
  45. _jsonHandler.setServer(server);
  46. _plainHandler.setServer(server);
  47. }
  48. @Override
  49. public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
  50. {
  51. if ("/plaintext".equals(target))
  52. _plainHandler.handle(target,baseRequest,request,response);
  53. else if ("/json".equals(target))
  54. _jsonHandler.handle(target,baseRequest,request,response);
  55. }
  56. }
  57. }