[hunchentoot-devel] Why override the standard dispatcher?

Hans Hübner hans at huebner.org
Mon Sep 22 22:25:52 UTC 2008


On Mon, Sep 22, 2008 at 22:33, Bryan Emrys <bryan.emrys at gmail.com> wrote:
> Newbie question. Can anyone explain why people would want to override the
> standard dispatcher? E.g. in
> http://www.lispcast.com/files/episode3/reddit-lisp.lisp
>
> (defclass handler ()
>   ((url
>     :initarg :url
>     :accessor url
>     :type string)
>    (handler
>     :initarg :handler
>     :accessor handler)
>    (name
>     :initarg :name
>     :accessor name
>
>     :type symbol)))
>
> (defvar *handlers* (make-hash-table))
>
> (defun our-handler (request)
>   (let ((handler (gethandler (hunchentoot:script-name request))))
>     (when handler (handler handler))))
>
> (setf hunchentoot:*dispatch-table* (list 'our-handler))

I personally find Hunchentoot's default handler architecture hard to
work with.  To me, a simple mapper from a URL prefix to a handler
function is much easier to understand.  That is why I have a request
dispatch mechanism similar to the one you've reproduced in my web
framework.

-Hans



More information about the Tbnl-devel mailing list