The HSQLDB HTTP protocol network database server.
WebServer has two distinct functions:
The primary function is to allow client/server access to HSQLDB databases
via the HTTP protocol. This protocol is less efficient than the HSQL
protocol used by the Server class and should be used only in situations
where sandboxes or firewalls between the client and the server do not
allow the use of the HSQL protocol. One example is client/server access by
an applet running in browsers on remote hosts and accessing the database
engine on the HTTP server from which the applet originated. From version
1.7.2, HTTP database connections are persistent and support transactions.
Similar to HSQL connections, they should be explicitly closed to free the
server resources.
The secondary function of WebServer is to act as a simple general purpose
HTTP server. It is aimed to support the minimum requirements set out by
the HTTP/1.0 standard. The HEAD and GET methods can be used to query and
retreive static files from the HTTP server.
Both the database server and HTTP server functions of WebServer can be
configured with the webserver.properties file. It contains entries for the
database server similar to those for the HSQL protocol Server class. In
addition, a list mapping different file endings to their mime types may be
included in this file. (fredt@users)
From the command line, the options are as follows:
+----------------+-------------+----------+------------------------------+
| OPTION | TYPE | DEFAULT | DESCRIPTION |
+----------------+-------------+----------+------------------------------|
| -? | -- | -- | prints this message |
| -address | name|number | any | server inet address |
| -port | number | 80 | port at which server listens |
| -database.i | [type]spec | 0=test | path of database i |
| -dbname.i | alias | -- | url alias for database i |
| -silent | true|false | true | false => display all queries |
| -trace | true|false | false | display JDBC trace messages |
| -no_system_exit| true|false | false | do not issue System.exit() |
+----------------+-------------+----------+------------------------------+
Example of the webserver.properties file:
server.port=80
server.database.0=test
server.dbname.0=...
...
server.database.n=...
server.dbname.n=...
server.silent=true
.htm=text/html
.html=text/html
.txt=text/plain
.gif=image/gif
.class=application/octet-stream
.jpg=image/jpeg
.jgep=image/jpeg
.zip=application/x-zip-compressed
- For server.root, use '/' as the separator, even for DOS/Windows.
- File extensions for mime types must be lowercase and start with '.'
Replaces original Hypersonic class of the same name.
getDefaultWebPage
public String getDefaultWebPage()
Retrieves the name of the web page served when no page is specified.
This attribute is relevant only when server protocol is HTTP(S).
- getDefaultWebPage in interface Server
- the name of the web page served when no page is specified
getHelpString
public String getHelpString()
Retrieves a String object describing the command line and
properties options for this Server.
- getHelpString in interface Server
- the command line and properties options help for this Server
getProductName
public String getProductName()
Retrieves this server's product name.
Typically, this will be something like: "HSQLDB xxx server".
- getProductName in interface Server
- the product name of this server
getProtocol
public String getProtocol()
Retrieves a string respresentaion of the network protocol
this server offers, typically one of 'HTTP', HTTPS', 'HSQL' or 'HSQLS'.
- getProtocol in interface Server
- string respresentation of this server's protocol
getWebRoot
public String getWebRoot()
Retrieves the root context (directory) from which web content
is served. This property is relevant only when the server
protocol is HTTP(S). Although unlikely, it may be that in the future
other contexts, such as jar urls may be supported, so that pages can
be served from the contents of a jar or from the JVM class path.
- getWebRoot in interface Server
- the root context (directory) from which web content is served
main
public static void main(String[] args)
Starts a new WebServer.
- main in interface Server
args
- the "command line" parameters with which to start
the WebServer. "-?" will cause the command line arguments
help to be printed to the standard output