Hi,
Sorry I'm in a rush out the door, shouldn't really be writing this now...
Is this what you had in mind Peter...
I agree with Edi about not making sense in the general case, but that there is a really really common case, and that's where you are using a prefix to dispatch (maybe Java's influence, maybe just because it makes for useful URLs?) anyway...
I've take two approaches to how this works, currently using TBNL, I've been writing things like:
(let ((command (cdddr (split-sequence:split-sequence #/ (script- name)))))...
in the handler.
This is a bit ugly because you have to count the 'd's in your cd*r -- but I note that the dispatch prefix is not always the same as the command prefix (dispatch prefixes can take a minimalist approach, only specify the minimum needed) so the handler had to do some work or know something anyway.
(btw, I used the word 'command', Peter used 'PATH_INFO' -- I don't really like either :-)
Anyway, if you do this then you have a list of strings. Handy.
In a much larger Java application this was far too limiting. I wrote a dispatching system that allowed the programmer to name parts of the URL in the regex used to dispatch. The named parts were then turned into parameter like things. Sooner or later I'm going to have to write this in lisp.
Cheers, Bob
On Oct 7, 2005, at 5:19 AM, Edi Weitz wrote:
On Fri, 7 Oct 2005 11:04:26 +0200, Peter BARABAS peter.barabas@gmail.com wrote:
I don't know if it makes sense, but I'd treat the prefix dispatch part as SCRIPT_NAME and everything after it as PATH_INFO. E.g. in http://www.something.net/authors/Kurt_Vonnegut "/authors/" would be the SCRIPT_NAME and "Kurt_Vonnegut" the PATH_INFO. Again, this might be non-sense.
Yes, that would make sense with prefix dispatchers but not with arbitrary dispatchers. What if the dispatcher dispatches depending on the last three characters of the URI? Or depending on the phase of the moon?
I think what you want can be achieved if you, in your own dispatcher, set AUX-REQUEST-VALUE to whatever information about the URI you want to communicate to the handlers. Only the dispatcher can know which part of the URI is relevant to the handler and which isn't.
On a related note, I agree that SCRIPT-NAME might not be the best name but at the moment it's at least well-defined.
Cheers, Edi. _______________________________________________ tbnl-devel site list tbnl-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/tbnl-devel
---- Bob Hutchison -- blogs at http://www.recursive.ca/hutch/ Recursive Design Inc. -- http://www.recursive.ca/ Raconteur -- http://www.raconteur.info/