edu.ucsb.nceas.metacat
Class MetaCatServlet

edu.ucsb.nceas.metacat.MetaCatServlet

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=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
action=read -- display an XML document in XML or HTML
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
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
action=getdatadoc -- retreive a stored datadocument
action=getdoctypes -- retreive all doctypes (publicID)
action=getdataguide -- retreive a Data Guide
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.
protected  java.lang.String decodeMouseAction(java.util.Hashtable params)
          decodes the mouse click information coming from the client.
 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 group)
          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 group)
          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)
          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

decodeMouseAction

protected java.lang.String decodeMouseAction(java.util.Hashtable params)
decodes the mouse click information coming from the client. This function may be overwritten to provide specific functionality for different applications.
Parameters:
params - the parameters from the CGI
Returns:
action the action to be performed or "error" if an error was generated

handleSQuery

protected void handleSQuery(java.io.PrintWriter out,
                            java.util.Hashtable params,
                            javax.servlet.http.HttpServletResponse response,
                            java.lang.String user,
                            java.lang.String group)
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 group)
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)
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

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. If there is a returndoc, then it only displays documents of whatever type returndoc represents. If a result is found in a document that is not of type returndoc then this attempts to find a relation between this document and one that satifies the returndoc doctype.
Parameters:
doclist- - the hashtable to transform
xmlquery- - the query that returned the dolist result
resultdoc- - the document type to backtrack to.


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