栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

WEB安全(四)Cookie的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

WEB安全(四)Cookie的使用

1、设置 cookie 返回给客户端
@GetMapping("/change-username")
public String setcookie(HttpServletResponse response) {
    // 创建 cookie
    cookie cookie = new cookie("username", "jin");
    //设置 cookie过期时间
    cookie.setMaxAge(7 * 24 * 60 * 60); // 7天过期
    //添加到 response 中
    response.addcookie(cookie);

    return "Username is changed!";
}
2、使用 Spring 框架提供的 @cookievalue 注解获取特定的 cookie 的值
@GetMapping("/")
public String readcookie(@cookievalue(value = "username", defaultValue = "jin") String username) {
    return "Hey! My username is " + username;
}
3、读取所有的 cookie 值
@GetMapping("/all-cookies")
public String readAllcookies(HttpServletRequest request) {

    cookie[] cookies = request.getcookies();
    if (cookies != null) {
        return Arrays.stream(cookies)
                .map(c -> c.getName() + "=" + c.getValue()).collect(Collectors.joining(", "));
    }

    return "No cookies";
}
cookie类的主要方法
No.方法类型描述
1cookie(String name, String value)构造方法实例化cookie对象,传入cooke名称和cookie的值
2public String getName()普通方法取得cookie的名字
3public String getValue()普通方法取得cookie的值
4public void setValue(String newValue)普通方法设置cookie的值
5public void setMaxAge(int expiry)普通方法设置cookie的最大保存时间,即cookie的有效期
6public int getMaxAge()普通方法获取cookies的有效期
7public void setPath(String uri)普通方法设置cookie的有效路径,比如把cookie的有效路径设置为"/xdp",那么浏览器访问"xdp"目录下的web资源时,都会带上cookie
8public String getPath()普通方法获取cookie的有效路径
9public void setDomain(String pattern)普通方法设置cookie的有效域
10public String getDomain()普通方法获取cookie的有效域
注意事项

1、在使用cookie的时候,首先要注意浏览器是否支持cookie,可以设置浏览器,使其支持使用cookie

2、如果要使cookie保存中文的信息,需要使用java.net.URLEncoder类的encode方法进行编码,需要使用java.net.URLDecoder的decode方法进行解码

	// 对request传过来的参数设置编码格式,以免传入中文的时候出现问题,必须在request.getParameter之前设置
	request.setCharacterEncoding("utf-8");
	// 对字符串以utf8的格式进行编码
	String name=URLEncoder.encode(request.getParameter("username"),"utf-8");

3、浏览器一般只允许存放300个cookie,每个站点最多存放20个cookie,每个cookie的大小限制为4KB。

4、如果创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/735256.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号