cookie的简单使用


image-20210831190236557

  1. 创建cookie对象并保存到客户端
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
* 本类用来演示: 服务器端创建cookie
*
* @author: success
* @date: 2021/3/30 1:41 下午
*/
@WebServlet(urlPatterns = "/cookie/create")
public class CookieCreateAction extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1. 创建cookie对象
String username = "驰星";
//需要对中文进行二级编码
username = URLEncoder.encode(username,"utf-8");
username = URLEncoder.encode(username,"utf-8");

Cookie c = new Cookie("loginInfo",username+":123");
//2. 设置path
c.setPath("/");

//4. 设置有效期
c.setMaxAge(60);//单位是s

//3. 通过响应头信息将cookie发送到浏览器端
resp.addCookie(c);

}
}

  1. 从客户端获取cookie
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/**
* 本类用来演示: 获取cookie
*
* 客户端每次发送请求的时候会在请求头信息中将cookie发送到server
*
* @author: success
* @date: 2021/3/30 1:54 下午
*/
@WebServlet(urlPatterns = "/cookie/get")
public class CookieGetAction extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1. 获取客户端发送过来的所有的cookie
Cookie[] cookies = req.getCookies();
//2. 为了防止抛出java.lang.NullPointerException空指针异常
//非空判断
if(null!=cookies && cookies.length>0){
//3. 遍历这个cookie
for (Cookie cookie : cookies) {
if("loginInfo".equals(cookie.getName())){
//4. 获取该cookie中的value
String value = cookie.getValue();
//5. java.lang.String的切割方法
String[] arr = value.split(":");
//6. 注意username如果是中文,当初进行二级编码操作
String uname = URLDecoder.decode(URLDecoder.decode(arr[0],"utf-8"),"utf-8");
String pwd = arr[1];
System.out.println(uname);
System.out.println(pwd);
}
}
}
}
}


文章作者: 哈雅布撒
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 哈雅布撒 !
  目录