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
FieldsModifier and TypeFieldDescriptionprotected static final Stringprotected static final Stringprotected static final Stringprotected booleanFields inherited from class org.eclipse.rdf4j.workbench.base.TransformationServlet
CONTEXT, cookies, INFO, NON_VERIFYING_PARSER_CONFIGFields inherited from class org.eclipse.rdf4j.workbench.base.AbstractRepositoryServlet
info, manager, MANAGER_PARAM, repository, REPOSITORY_PARAM, vfFields 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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoiddestroy()protected voiddoPost(WorkbenchRequest req, javax.servlet.http.HttpServletResponse resp, String xslPath) String[]protected Stringvoidinit(javax.servlet.ServletConfig config) Initialize this instance of the servlet.final voidservice(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 voidservice(WorkbenchRequest req, javax.servlet.http.HttpServletResponse resp, String xslPath) protected booleanshouldWriteQueryCookie(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 voidsubstituteQueryCache(Map<String, String> testQueryCache) For testing purposes only.protected voidsubstituteQueryStorage(QueryStorage storage) Methods inherited from class org.eclipse.rdf4j.workbench.base.TransformationServlet
serviceMethods inherited from class org.eclipse.rdf4j.workbench.base.AbstractRepositoryServlet
setRepository, setRepositoryInfo, setRepositoryManagerMethods inherited from class org.eclipse.rdf4j.workbench.base.AbstractServlet
checkJSONP, getBooleanResultFormat, getJSONPResultFormat, getResultWriter, getServletConfig, getServletInfo, getTupleResultBuilder, getTupleResultFormat, serviceMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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:
getCookieNamesin 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:
initin interfacejavax.servlet.Servlet- Overrides:
initin classTransformationServlet- Parameters:
config- configuration passed in by the application container- Throws:
javax.servlet.ServletException
-
destroy
public void destroy()- Specified by:
destroyin interfacejavax.servlet.Servlet- Overrides:
destroyin 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:
servicein classTransformationServlet- Throws:
javax.servlet.ServletExceptionIOException
-
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:
servicein classTransformationServlet- Throws:
IOExceptionRDF4JExceptionBadRequestException
-
doPost
protected void doPost(WorkbenchRequest req, javax.servlet.http.HttpServletResponse resp, String xslPath) throws IOException, BadRequestException, RDF4JException - Overrides:
doPostin classTransformationServlet- Throws:
IOExceptionBadRequestExceptionRDF4JException
-
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
-