racket/collects/web-server/servlet/servlet-url.ss
Jay McCarthy d9a2d52490 converting to scheme/base
svn: r7826
2007-11-23 23:58:36 +00:00

27 lines
832 B
Scheme

#lang scheme/base
(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?)])