racket/collects/web-server/scribblings/servlet-env.scrbl

54 lines
2.7 KiB
Racket

#lang scribble/doc
@(require "web-server.ss")
@title[#:tag "servlet-env.ss"
#:style 'toc]{Simple Single Servlet Servers}
@(require (for-label web-server/servlet-env))
@defmodule[web-server/servlet-env]
The @web-server provides a way to quickly configure and start a server instance.
@defproc[(serve/servlet [servlet (request? . -> . response?)]
[#:launch-browser? launch-browser? boolean? #t]
[#:quit? quit? boolean? #t]
[#:listen-ip listen-ip string? "127.0.0.1"]
[#:port port number? 8000]
[#:manager manager manager? default-threshold-LRU-manager]
[#:servlet-namespace servlet-namespace (listof require-spec?) empty]
[#:server-root-path server-root-path path? default-server-root-path]
[#:extra-files-path extra-files-path path? (build-path server-root-path "htdocs")]
[#:servlets-root servlets-root path? (build-path server-root-path ".")]
[#:file-not-found-path file-not-found-path path?
(build-path server-root-path "conf" "not-found.html")]
[#:mime-types-path mime-types-path path?
(build-path server-root-path "mime.types")]
[#:servlet-path servlet-path path?
"servlets/standalone.ss"])
void]{
This sets up and starts a fairly default server instance.
@scheme[servlet] is installed as a server at @scheme[servlet-path] with @scheme[manager]
as its continuation manager. (The default manager limits the amount of memory to 64 MB and
deals with memory pressure as discussed in the @scheme[make-threshold-LRU-manager] documentation.)
If @scheme[launch-browser?] is true, then a web browser is opened to the servlet's start page.
If @scheme[quit?] is true, then the URL @filepath["/quit"] ends the server.
Advanced users may need the following options:
The server listens on @scheme[listen-ip] and port @scheme[port].
The modules specified by @scheme[servlet-namespace] are shared with other servlets.
The server files are rooted at @scheme[server-root-path] (which is defaultly the distribution root.)
A file path, in addition to the @filepath["htdocs"] directory under @scheme[server-root-path] may be
provided with @scheme[extra-files-path]. These files are checked first.
The @filepath["servlets"] directory is expected at @scheme[servlets-root].
If a file cannot be found, @scheme[file-not-found-path] is used as an error response.
MIME types are looked up at @scheme[mime-types-path].
}