4

我正在使用 Hunchentoot 并想更改会话 cookie 的名称。这是使用通用函数实现的,文档说要更改名称,您可以“专门化函数”。

我不太确定这在这里意味着什么。我的印象是,专门化一个函数就是在某些参数类型上分派一个方法。在这种特殊情况下,该函数采用服务器接受器,我不想更改它。有人可以照亮我吗?

API:http ://weitz.de/hunchentoot/#session-cookie-name

这是源代码中的实现:

 (defgeneric session-cookie-name (acceptor)                                          
    (:documentation "Returns the name \(a string) of the cookie \(or the              
    GET parameter) which is used to store a session on the client side.                 
    The default is to use the string \"hunchentoot-session\", but you can               
    specialize this function if you want another name."))                               

 (defmethod session-cookie-name ((acceptor t))
    "hunchentoot-session")
4

1 回答 1

3

创建一个子类并以这种方式专门化:

(defclass my-acceptor (hunchentoot:acceptor) ())

(defmethod session-cookie-name ((acceptor my-acceptor)) 
  "my-session")

该函数仍然需要一个接受器,现在它只是你的那种接受器。

于 2010-01-21T10:53:22.897 回答