1 - Paste the following code into a new document test.ss and save in servlet example folder (/usr/plt/collects/web-server/default-web-root/servlets/examples/test.ss) If document name test.ss changes, change the module name on first line.
(module test mzscheme (require (lib "servlet.ss" "web-server")) (provide (all-defined)) (define interface-version 'v1) (define timeout +inf.0)
(define cc (make-parameter #f))
(define (input name) `(input ((type "text") (name ,(format "~a" name)))))
(define (submit) `(input ((type "submit"))))
(define (form . body) `(form ((action ,(cc))) ,@body))
(define (a ref . body) `(a ((href ,ref)) ,@body))
(define-syntax page
(syntax-rules ()
[(page x ...) (send/suspend (lambda (k) (cc k) `(html (body ,x ...))))]))
(define (get name req)
(extract-binding/single name (request-bindings req)))
(define (start initial-request)
(define foo (get 'foo (page (form (input 'foo) (submit)))))
(page (a (cc) "click here"))
(page "you said: " foo))
)2 - Start the PLT web server sudo /usr/plt/bin/plt-web-server
3 - Open a web browser and navigate to http://localhost/servlets/examples/test.ss
An easy way to check for errors is to open it in DrScheme, click "Run" and they would be highlighted in red.
-----