edu.ucsb.nceas.metacat
Class MetaCatServlet

edu.ucsb.nceas.metacat.MetaCatServlet
Direct Known Subclasses:
marineServlet

public class MetaCatServlet

A metadata catalog server implemented as a Java Servlet

Valid parameters are:
action=query -- query the values of all elements and attributes and return a result set of nodes
action=squery -- structured query (see pathquery.dtd)
action=read -- read any metadata/data file from Metacat and from Internet
action=insert -- insert an XML document into the database store
action=update -- update an XML document that is in the database store
action=delete -- delete an XML document from the database store
action=validate -- vallidate the xml contained in valtext
doctype -- document type list returned by the query (publicID)
qformat=xml -- display resultset from query in XML
qformat=html -- display resultset from query in HTML
qformat=zip -- zip resultset from query
docid=34 -- display the document with the document ID number 34
doctext -- XML text of the document to load into the database
acltext -- XML access text for a document to load into the database
dtdtext -- XML DTD text for a new DTD to load into Metacat XML Catalog
query -- actual query text (to go with 'action=query' or 'action=squery')
valtext -- XML text to be validated
abstractpath -- XPath in metadata document to read from
action=getaccesscontrol -- retrieve acl info for Metacat document
action=getdoctypes -- retrieve all doctypes (publicID)
action=getdtdschema -- retrieve a DTD or Schema file
action=getdataguide -- retrieve a Data Guide
action=getprincipals -- retrieve a list of principals in XML
datadoc -- data document name (id)

The particular combination of parameters that are valid for each particular action value is quite specific. This documentation will be reorganized to reflect this information.


Constructor Summary
MetaCatServlet()
           
 
Method Summary
protected  java.lang.String createResultDocument(java.util.Hashtable doclist, java.lang.String xmlquery)
          Transforms a hashtable of documents to an xml or html result.
 void destroy()
          Close all db connections from the pool
 void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Handle "GET" method requests from HTTP clients
 void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Handle "POST" method requests from HTTP clients
protected  void handleQuery(java.io.PrintWriter out, java.util.Hashtable params, javax.servlet.http.HttpServletResponse response, java.lang.String user, java.lang.String[] groups)
          Create the xml query, execute it and display the results.
protected  void handleSQuery(java.io.PrintWriter out, java.util.Hashtable params, javax.servlet.http.HttpServletResponse response, java.lang.String user, java.lang.String[] groups)
          Retreive the squery xml, execute it and display it
 void init(javax.servlet.ServletConfig config)
          Initialize the servlet by creating appropriate database connections
protected  java.lang.String transformQuery(java.util.Hashtable params)
          Removes the tag from the beginning of xmlquery so it can properly be placed in the tag of the resultset.
protected  java.lang.String transformQuery(java.lang.String xmlquery)
          removes the tag from the beginning.
protected  void transformResultset(java.lang.String resultdoc, javax.servlet.http.HttpServletResponse response, java.io.PrintWriter out, java.lang.String qformat)
          Transorms an xml resultset document to html and sends it to the browser
 

Constructor Detail

MetaCatServlet

public MetaCatServlet()
Method Detail

init

public void init(javax.servlet.ServletConfig config)
          throws javax.servlet.ServletException
Initialize the servlet by creating appropriate database connections

destroy

public void destroy()
Close all db connections from the pool

doGet

public void doGet(javax.servlet.http.HttpServletRequest request,
                  javax.servlet.http.HttpServletResponse response)
           throws javax.servlet.ServletException,
                  java.io.IOException
Handle "GET" method requests from HTTP clients

doPost

public void doPost(javax.servlet.http.HttpServletRequest request,
                   javax.servlet.http.HttpServletResponse response)
            throws javax.servlet.ServletException,
                   java.io.IOException
Handle "POST" method requests from HTTP clients

handleSQuery

protected void handleSQuery(java.io.PrintWriter out,
                            java.util.Hashtable params,
                            javax.servlet.http.HttpServletResponse response,
                            java.lang.String user,
                            java.lang.String[] groups)
Retreive the squery xml, execute it and display it
Parameters:
out - the output stream to the client
params - the Hashtable of parameters that should be included in the squery.
response - the response object linked to the client
conn - the database connection

handleQuery

protected void handleQuery(java.io.PrintWriter out,
                           java.util.Hashtable params,
                           javax.servlet.http.HttpServletResponse response,
                           java.lang.String user,
                           java.lang.String[] groups)
Create the xml query, execute it and display the results.
Parameters:
out - the output stream to the client
params - the Hashtable of parameters that should be included in the squery.
response - the response object linked to the client

transformQuery

protected java.lang.String transformQuery(java.util.Hashtable params)
Removes the tag from the beginning of xmlquery so it can properly be placed in the tag of the resultset. This method is overwritable so that other applications can customize the structure of what is in the tag.
Parameters:
xmlquery - is the query to remove the tag from.

transformQuery

protected java.lang.String transformQuery(java.lang.String xmlquery)
removes the tag from the beginning. This takes a string as a param instead of a hashtable.
Parameters:
xmlquery - a string representing a query.

transformResultset

protected void transformResultset(java.lang.String resultdoc,
                                  javax.servlet.http.HttpServletResponse response,
                                  java.io.PrintWriter out,
                                  java.lang.String qformat)
Transorms an xml resultset document to html and sends it to the browser
Parameters:
resultdoc - the string representation of the document that needs to be transformed.
response - the HttpServletResponse object bound to the client.
out - the output stream to the client
qformat - the name of the style-set to use for transformations

createResultDocument

protected java.lang.String createResultDocument(java.util.Hashtable doclist,
                                                java.lang.String xmlquery)
Transforms a hashtable of documents to an xml or html result.
Parameters:
doclist- - the hashtable to transform
xmlquery- - the query that returned the doclist result


Copyright © 2000 National Center for Ecological Analysis and Synthesis. All Rights Reserved.