欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java操作cookie

程序员文章站 2024-03-20 17:37:22
...

一.前言

Cookie是客户端技术,而HttpSession是服务器端技术。Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入JSESSIONID用于标记一个会话(session),这样服务器可以知道该用户是否合法用户以及是否需要重新登录等,服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。

二.cookie属性的介绍

1. name

名称(必须)

2.value

值(必须)

3.comment

可选的。注释

4.path:

设置路径(可选)
如果不设置路径,那么只有设置该cookie的URI及其子路径可以访问

5.version

版本(可选)

6.domain

该Cookie所属的网站域名(可选)

7.maximum age

不设置就是会话过程(存在浏览器的内存中)。单位是秒 ,如果是0,说明即将要删除。

三.Cookie的操作

@RestController
@RequestMapping("/cooki")
public class CookiController {
    @Resource
    HttpServletRequest request;
    @Resource
    HttpServletResponse response;

    /**
     * @Description  getCookie
     **/
    @GetMapping("/get")
    public String getCookie(){
        String str_cookie="";
        Cookie[] cookies =  request.getCookies();
        if(cookies != null){
            for(Cookie cookie : cookies){
                String name = cookie.getName();
                String value = cookie.getValue();
                String comment = cookie.getComment();
                String path = cookie.getPath();
                int version = cookie.getVersion();
                boolean secure = cookie.getSecure();
                int maxAge = cookie.getMaxAge();
                str_cookie=str_cookie+"name:"+name+" value"+value+" commoent:"+comment+" path:"+path+" version:"+version+" secure:"+secure+" maxAge:"+maxAge+"\n";
            }
        }
        return str_cookie;
    }

    /**
     * @Description  设置cookie
     **/
    @GetMapping("/set")
    public String setCookie(int maxage,String path,String domain){
        Cookie cookie = new Cookie("name_1", "hello");
        if(maxage!=0){
            cookie.setMaxAge(maxage);
        }
        if(path!=null&&!path.equals("")){
            cookie.setPath(path);
        }
        if(domain!=null&&!domain.equals("")){
            cookie.setDomain(domain);
        }
        response.addCookie(cookie);
        return "ok";
    }

    /**
     * @Description  删除cookie
     **/
    @GetMapping("/delete")
    public String deleteCookie(String name){
        if(name!=null&&!name.equals("")){
            Cookie cookie = new Cookie("name_1", "hello");
            cookie.setMaxAge(0);
            response.addCookie(cookie);
        }
        return "ok";
    }
}