racket/collects/web-server/scribblings/servlet-setup.scrbl
2010-12-07 14:14:55 -07:00

62 lines
2.6 KiB
Racket

#lang scribble/doc
@(require "web-server.rkt")
@title[#:tag "setup"]{Setting Up Servlets}
@(require (for-label web-server/servlet/setup
web-server/http
web-server/private/servlet
web-server/managers/manager
web-server/configuration/namespace
racket/serialize
web-server/stuffers/stuffer))
@defmodule[web-server/servlet/setup]{
This module is used internally to build and load servlets. It may be useful to those who are trying to extend the server.
@defproc[(make-v1.servlet [directory path-string?]
[timeout integer?]
[start (request? . -> . can-be-response?)])
servlet?]{
Creates a version 1 servlet that uses @racket[directory] as its current directory, a timeout manager with a @racket[timeout] timeout, and @racket[start] as the request handler.
}
@defproc[(make-v2.servlet [directory path-string?]
[manager manager?]
[start (request? . -> . can-be-response?)])
servlet?]{
Creates a version 2 servlet that uses @racket[directory] as its current directory, a @racket[manager] as the continuation manager, and @racket[start] as the request handler.
}
@defproc[(make-stateless.servlet [directory path-string?]
[stuffer (stuffer/c serializable? bytes?)]
[manager manager?]
[start (request? . -> . can-be-response?)])
servlet?]{
Creates a stateless @racketmodname[web-server] servlet that uses @racket[directory] as its current directory, @racket[stuffer] as its stuffer, and @racket[manager] as the continuation manager, and @racket[start] as the request handler.
}
@defthing[default-module-specs (listof module-path?)]{
The modules that the Web Server needs to share with all servlets.
}
@defthing[path->servlet/c contract?]{
Equivalent to @racket[(path? . -> . servlet?)].
}
@defproc[(make-default-path->servlet
[#:make-servlet-namespace
make-servlet-namespace
make-servlet-namespace/c
(make-make-servlet-namespace)]
[#:timeouts-default-servlet
timeouts-default-servlet
integer?
30])
path->servlet/c]{
Constructs a procedure that loads a servlet from the path in a namespace created with @racket[make-servlet-namespace],
using a timeout manager with @racket[timeouts-default-servlet] as the default timeout (if no manager is given.)
}
}