Class QueryServlet
java.lang.Object
org.eclipse.rdf4j.workbench.base.AbstractServlet
org.eclipse.rdf4j.workbench.base.AbstractRepositoryServlet
org.eclipse.rdf4j.workbench.base.TransformationServlet
org.eclipse.rdf4j.workbench.commands.QueryServlet
- All Implemented Interfaces:
javax.servlet.Servlet
,RepositoryServlet
-
Field Summary
Modifier and TypeFieldDescriptionprotected static final String
protected static final String
protected static final String
protected boolean
Fields inherited from class org.eclipse.rdf4j.workbench.base.TransformationServlet
CONTEXT, cookies, INFO, NON_VERIFYING_PARSER_CONFIG
Fields inherited from class org.eclipse.rdf4j.workbench.base.AbstractRepositoryServlet
info, manager, MANAGER_PARAM, repository, REPOSITORY_PARAM, vf
Fields inherited from class org.eclipse.rdf4j.workbench.base.AbstractServlet
appConfig, APPLICATION_JAVASCRIPT, APPLICATION_SPARQL_RESULTS_XML, APPLICATION_XML, config, DEFAULT_JSONP_CALLBACK_PARAMETER, JSONP_CALLBACK_PARAMETER, JSONP_ENABLED, JSONP_VALIDATOR, log, MOZILLA, MSIE, SERVER_PASSWORD, SERVER_USER, SERVER_USER_PASSWORD, TEXT_HTML, TEXT_PLAIN, USER_AGENT
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
destroy()
protected void
doPost
(WorkbenchRequest req, javax.servlet.http.HttpServletResponse resp, String xslPath) String[]
protected String
void
init
(javax.servlet.ServletConfig config) Initialize this instance of the servlet.final void
service
(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) Long query strings could blow past the Tomcat default 8k HTTP header limit if stuffed into a cookie.protected void
service
(WorkbenchRequest req, javax.servlet.http.HttpServletResponse resp, String xslPath) 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.protected static void
substituteQueryCache
(Map<String, String> testQueryCache) For testing purposes only.protected void
substituteQueryStorage
(QueryStorage storage) Methods inherited from class org.eclipse.rdf4j.workbench.base.TransformationServlet
service
Methods inherited from class org.eclipse.rdf4j.workbench.base.AbstractRepositoryServlet
setRepository, setRepositoryInfo, setRepositoryManager
Methods inherited from class org.eclipse.rdf4j.workbench.base.AbstractServlet
checkJSONP, getBooleanResultFormat, getJSONPResultFormat, getResultWriter, getServletConfig, getServletInfo, getTupleResultBuilder, getTupleResultFormat, service
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface javax.servlet.Servlet
getServletConfig, getServletInfo, service
-
Field Details
-
REF
- See Also:
-
LIMIT
- See Also:
-
QUERY
- See Also:
-
writeQueryCookie
protected boolean writeQueryCookie
-
-
Constructor Details
-
QueryServlet
public QueryServlet()
-
-
Method Details
-
substituteQueryCache
For testing purposes only.- Parameters:
testQueryCache
- cache to use instead of the production cache instance
-
substituteQueryStorage
-
getCookieNames
- Overrides:
getCookieNames
in classTransformationServlet
- 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 interfacejavax.servlet.Servlet
- Overrides:
init
in classTransformationServlet
- Parameters:
config
- configuration passed in by the application container- Throws:
javax.servlet.ServletException
-
destroy
public void destroy()- Specified by:
destroy
in interfacejavax.servlet.Servlet
- Overrides:
destroy
in classAbstractServlet
-
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 beforeTransformationServlet.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 classTransformationServlet
- Throws:
javax.servlet.ServletException
IOException
-
shouldWriteQueryCookie
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'
-
service
protected void service(WorkbenchRequest req, javax.servlet.http.HttpServletResponse resp, String xslPath) throws IOException, RDF4JException, BadRequestException - Overrides:
service
in classTransformationServlet
- Throws:
IOException
RDF4JException
BadRequestException
-
doPost
protected void doPost(WorkbenchRequest req, javax.servlet.http.HttpServletResponse resp, String xslPath) throws IOException, BadRequestException, RDF4JException - Overrides:
doPost
in classTransformationServlet
- Throws:
IOException
BadRequestException
RDF4JException
-
getQueryText
- 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 storageRDF4JException
- if a problem occurs grabbing the request from storage
-