package server.handler; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.eclipse.jetty.server.HandlerContainer; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.handler.AbstractHandler; import org.eclipse.jetty.server.handler.ContextHandler; import database.Query; public class SearchHandler extends ContextHandler { private static Logger log = LogManager.getLogger( SearchHandler.class.getName() ); public SearchHandler() { this.setHandler( new innerHandler() ); } public SearchHandler( Context context ) { super( context ); this.setHandler( new innerHandler() ); } public SearchHandler( String contextPath ) { super( contextPath ); this.setHandler( new innerHandler() ); } public SearchHandler( HandlerContainer parent, String contextPath ) { super( parent, contextPath ); this.setHandler( new innerHandler() ); } private String askDB( String searchstring ) { Query q = new Query(); return q.search( searchstring ).toString(); } private class innerHandler extends AbstractHandler { @Override public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { log.debug( baseRequest.getUri() ); if( !request.getMethod().equals( "GET" )) return; String jsonString = askDB( request.getParameter( "string" ) ); log.debug( jsonString ); response.setContentType( "application/json" ); response.getWriter().println( jsonString ); baseRequest.setHandled( true ); } } }