ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ![](https://img.kancloud.cn/2a/c5/2ac5901bba57a977056b4601310caa60_1357x530.gif) ## 问题01:cookie是什么? cookie是小段的文本信息,可以标识用户身份,记录用户名和密码,跟踪重复用户等。 cookie是在网络**服务器上生成**,并发送给浏览器的。并以**key/value**的形式保存到**客户机**的某个指定目录中。 ## 问题02:cookie的增删改查? ### 1. cookie的写入 ``` Cookie cookie = new Cookie("name","value"); response.addCookie(cookie); ``` > **cookie不能保存中文** > **void javax.servlet.http.HttpServletResponse.addCookie(Cookie cookie)** > Adds the specified cookie to the response. This method can be called multiple times to set more than one cookie. ### 2. 设置cookie的存活时间 ```cookie.setMaxAg(int seconds) ``` > void javax.servlet.http.Cookie.setMaxAge(int expiry) > **Parameters**: expiry an integer specifying the maximum age of the cookie **in seconds**; if **negative**, meansthe cookie is **not stored**; if **zero**, **deletes** the cookie. ### 3. 获取cookie数组 ```request.getCookies();``` * [ ] 获取指定cookie的name ```cookie.getName() ``` * [ ] 获取指定cookie的value ```cookie.getValue() ``` ### 4. EL读取cookie ``` ${cookie.XXX.value} ``` ## 问题03:保存中文Cookie ``` URLEncoder.encode(value,"UTF-8")) ``` > **如果需要使用EL表达式读取中文cookie,则可以使用自定义标签库,编写解码函数** ``` ${custom:decoder(cookie.XXX.value,'UTF-8') } ```