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
public class QueryServlet extends TransformationServlet
-
-
Field Summary
Fields Modifier and Type Field Description protected static StringLIMITprotected static StringQUERYprotected static StringREFprotected booleanwriteQueryCookie-
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
Constructors Constructor Description QueryServlet()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddestroy()protected voiddoPost(WorkbenchRequest req, javax.servlet.http.HttpServletResponse resp, String xslPath)String[]getCookieNames()protected StringgetQueryText(WorkbenchRequest req)voidinit(javax.servlet.ServletConfig config)Initialize this instance of the servlet.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
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
-
-
-
-
Field Detail
-
REF
protected static final String REF
- See Also:
- Constant Field Values
-
LIMIT
protected static final String LIMIT
- See Also:
- Constant Field Values
-
QUERY
protected static final String QUERY
- See Also:
- Constant Field Values
-
writeQueryCookie
protected boolean writeQueryCookie
-
-
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:
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.ServletExceptionInitialize 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, IOExceptionLong 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
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'
-
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
protected String getQueryText(WorkbenchRequest req) throws BadRequestException, 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 storageRDF4JException- if a problem occurs grabbing the request from storage
-
-