当前位置: 首页 > 工具软件 > Yaws > 使用案例 >

Yaws(erlang web服务器框架) 学习记录之Cookie使用

狄兴业
2023-12-01

Cookie的使用是WEB开发中所必须掌握的知识点之一。HTTP请求本身是无状态的,要保持请求的状态就离不开Cookie。常见的应用比如购物车、登录等应用。

Yaws中使用Cookie是比较简单的。但其官方文档(yaws.pdf)没有做出简单的介绍,并且没有这两个函数的详细介绍,必须要阅读API文档来查找。

要在Yaws中使用Cookie,就是掌握两个API函数:

1.yaws_api:set_cookie/3

这个函数就是用来设置Cookie的,有三个参数:第一个是Cookie的名称,第二个是Cookie的值。它们全部用字符串形式的值。而第三个则是Cookie的选项列表,选项主要包括:

{expires,UtcTime},{max_age,Age},{path,Path},{domain,Domain},{comment,Comment},secure,http_only等。

要设置Cookie只要将这个函数的返回值放到out/1函数的输出中即可。

比如以下代码就是设置了一个Cookie,名称为name,其值为“Dark”:

<erl>
    out(_) ->
        Co = yaws_api:set_cookie("name","Dark",[]),
        [{html,"Success!"},Co].
</erl>
2.yaws_api:find_cookie_val/2

用来取指定名称的Cookie中的值。第一个参数就是Cookie的名称;第二个可以是arg或(Arg#arg.headers)#headers.cookie,直接使用Arg当然更方便了,在API文档中居然就没有说到,我不知道是什么原因,我是通过查看源代码才看到的。

以下代码就是获取名称为name的cookie的值:

<erl>
    out(Arg) ->
        Name = yaws_api:find_cookie_val("name",Arg),
        io:format("name:~p~n",[Name]),
        {html,"Success!"}.
</erl>

 类似资料: