1 package jalview.httpserver;
3 import java.io.IOException;
4 import java.util.Collections;
6 import javax.servlet.ServletException;
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
10 import org.eclipse.jetty.server.Request;
11 import org.eclipse.jetty.server.handler.AbstractHandler;
18 public abstract class AbstractRequestHandler extends AbstractHandler
21 * Handle an incoming Http request.
24 public void handle(String target, Request baseRequest,
25 HttpServletRequest request, HttpServletResponse response)
26 throws IOException, ServletException
30 // dumpRequest(request); // debug
31 processRequest(request, response);
35 * Set server error status on response
37 System.err.println("Exception handling request "
38 + request.getRequestURI() + " : " + t.getMessage());
39 if (response.isCommitted())
42 * Can't write an HTTP header once any response content has been written
45 .println("Unable to return HTTP 500 as response already committed");
49 response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
53 response.getWriter().flush();
54 baseRequest.setHandled(true);
59 * Subclasses should override this method to perform request processing
64 protected abstract void processRequest(HttpServletRequest request,
65 HttpServletResponse response);
68 * For debug - writes HTTP request details to stdout
72 protected void dumpRequest(HttpServletRequest request)
74 System.out.println(request.getMethod());
75 System.out.println(request.getRequestURL());
76 for (String hdr : Collections.list(request.getHeaderNames()))
78 for (String val : Collections.list(request.getHeaders(hdr)))
80 System.out.println(hdr + ": " + val);
83 for (String param : Collections.list(request.getParameterNames()))
85 for (String val : request.getParameterValues(param))
87 System.out.println(param + "=" + val);