racket/collects/web-server/servlet/servlet-url.ss
Jay McCarthy bdd86a69e4 Tests and bug fixes and notes
svn: r6524
2007-06-07 21:38:16 +00:00

27 lines
896 B
Scheme

(module servlet-url mzscheme
(require (lib "list.ss")
(lib "contract.ss")
(lib "url.ss" "net"))
(require "../private/request-structs.ss"
"../private/util.ss")
(define-struct servlet-url (url))
(define (servlet-url->url-string/no-continuation su)
(define in-url (servlet-url-url su))
(define first? (box #t))
(url->string
(url-replace-path
(lambda (ps)
(map (lambda (p/p)
(if (unbox first?)
(begin0 (make-path/param (path/param-path p/p) empty)
(set-box! first? #f))
p/p))
ps))
in-url)))
(define (request->servlet-url req)
(make-servlet-url (request-uri req)))
(provide/contract
[servlet-url->url-string/no-continuation (servlet-url? . -> . string?)]
[request->servlet-url (request? . -> . servlet-url?)]))