opendap.servlet
Class GetInfoHandler
java.lang.Object
opendap.servlet.GetInfoHandler
public class GetInfoHandler
- extends java.lang.Object
Default handler for OPeNDAP info requests. This class is used
by AbstractServlet. This code exists as a seperate class in order to alleviate
code bloat in the AbstractServlet class. As such, it contains virtually no
state, just behaviors.
- Author:
- Nathan David Potter
Method Summary |
java.lang.String |
loadOverrideDoc(java.lang.String infoDir,
java.lang.String dataSet)
************************************************************************
Checks the info directory for user supplied override documents for the
passed dataset name. |
void |
sendINFO(java.io.PrintStream pw,
GuardedDataset gds,
ReqState rs)
************************************************************************
Default handler for OPeNDAP info requests. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
GetInfoHandler
public GetInfoHandler()
sendINFO
public void sendINFO(java.io.PrintStream pw,
GuardedDataset gds,
ReqState rs)
throws DAP2Exception,
ParseException
- ************************************************************************
Default handler for OPeNDAP info requests. Returns an html document
describing the contents of the servers datasets.
The "INFOcache" <init-param> element in the web.xml file
specifies the designated location for:
- ".info" response override files.
- Server specific HTML* files.
- Dataset specific HTML* files .
The server specific HTML* files must be named #servlet#.html
where #servlet# is the name of the servlet that is running as
the OPeNDAP server in question. This name is determined at run time
by using the class called Class ( this.getClass().getName() ).
In the C++ code the analogy is the per-cgi file names.
The dataset specific HTML* files are located by catenating `.html'
to #name#, where #name# is the name of the dataset. If the filename part
of #name# is of the form [A-Za-z]+[0-9]*.* then this function also looks
for a file whose name is [A-Za-z].html For example, if #name# is
.../data/fnoc1.nc this function first looks for .../data/fnoc1.nc.html.
However, if that does not exist it will look for .../data/fnoc.html. This
allows one `per-dataset' file to be used for a collection of files with
the same root name.
NB: An HTML* file contains HTML without the , or tags
(my own notation).
Look for the user supplied Server- and dataset-specific HTML* documents.
- Parameters:
pw
- The PrintStream to which the output should be written.gds
- The thread safe dataset.rs
- The ReqState object for theis client request.
- Throws:
DAP2Exception
ParseException
- See Also:
GuardedDataset
,
ReqState
loadOverrideDoc
public java.lang.String loadOverrideDoc(java.lang.String infoDir,
java.lang.String dataSet)
throws DAP2Exception
- ************************************************************************
Checks the info directory for user supplied override documents for the
passed dataset name. If there are overridedocuments present then the
contents are read and returned to the caller as a string.
- Parameters:
dataSet
- The name of the dataset.
- Throws:
DAP2Exception