Class QueryServlet

    • Constructor Detail

      • QueryServlet

        public QueryServlet()
    • Method Detail

      • substituteQueryCache

        protected static void substituteQueryCache​(Map<String,​String> testQueryCache)
        For testing purposes only.
        Parameters:
        testQueryCache - cache to use instead of the production cache instance
      • substituteQueryStorage

        protected void substituteQueryStorage​(QueryStorage storage)
      • getCookieNames

        public String[] getCookieNames()
        Overrides:
        getCookieNames in class TransformationServlet
        Returns:
        the names of the cookies that will be retrieved from the request, and returned in the response
      • init

        public void init​(javax.servlet.ServletConfig config)
                  throws javax.servlet.ServletException
        Initialize this instance of the servlet.
        Specified by:
        init in interface javax.servlet.Servlet
        Overrides:
        init in class TransformationServlet
        Parameters:
        config - configuration passed in by the application container
        Throws:
        javax.servlet.ServletException
      • destroy

        public void destroy()
        Specified by:
        destroy in interface javax.servlet.Servlet
        Overrides:
        destroy in class AbstractServlet
      • service

        public final void service​(javax.servlet.http.HttpServletRequest req,
                                  javax.servlet.http.HttpServletResponse resp)
                           throws javax.servlet.ServletException,
                                  IOException
        Long query strings could blow past the Tomcat default 8k HTTP header limit if stuffed into a cookie. In this case, we need to set a flag to avoid this happening before TransformationServlet.service(HttpServletRequest, HttpServletResponse) is called. A much lower limit on the size of the query text is used to stay well below the Tomcat limitation.
        Overrides:
        service in class TransformationServlet
        Throws:
        javax.servlet.ServletException
        IOException
      • shouldWriteQueryCookie

        protected boolean shouldWriteQueryCookie​(String queryText)

        Determines if the servlet should write out the query text into a cookie as received, or write it's hash instead.

        Note: This is a separate method for testing purposes.

        Parameters:
        queryText - the text received as the value for the parameter 'query'
      • getQueryText

        protected String getQueryText​(WorkbenchRequest req)
                               throws BadRequestException,
                                      org.eclipse.rdf4j.common.exception.RDF4JException
        Parameters:
        req - for looking at the request parameters
        Returns:
        the query text, if it can somehow be retrieved from request parameters, otherwise an empty string
        Throws:
        BadRequestException - if a problem occurs grabbing the request from storage
        org.eclipse.rdf4j.common.exception.RDF4JException - if a problem occurs grabbing the request from storage