1.概述
Cookie(客户端,不是内置对象):Cookie是由服务器生成的,在发送给客户端保存。
相当于本地缓存的作用:客户端——>服务端
比如你在线看视频,你看视频是从服务端读取的,看完视频,下一次看就不用在缓存了。
作用:
提高访问服务端的效率,但是安全性较差。
2.方法属性
Cookie:name=value
继承于java.servlet.http.Cookie
public Cookie(String name,value)
String getName()获取name
String getValue()获取value
void setMaxAge(int expiry):最大有效期(即缓存的保存时间)以秒为单位
服务器发送Cookie到客户端
response.addCookie(Cookie cookie)
页面跳转(转发,重定向)
客户端获取Cookie
request.getCookie();
a.服务端增加cookie:response对象
客户端获取cookie:request对象。
b.不能直接获取某一个单独对象,只能一次性将全部的cookie拿到,不能说一个一个拿。(就是指缓存了a视频和b视频,不能选择性的拿某一个而是两个都得拿到客户端)
3.实例解析
使用一个页面设定cookie的name和value,页面为addCookie.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Cookie cookie1 = new Cookie("name","zs");
Cookie cookie2 = new Cookie("pwd","123");
response.addCookie(cookie1);
response.addCookie(cookie2);
//将Cookie信息发送到客户端request.jsp 页面获取
response.sendRedirect("request.jsp");
%>
</body>
</html>
用来接收Cookie信息的页面request.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//因为那边的Cookie是多个所以定义数组存储接收
Cookie cookies[] = request.getCookies();
for(Cookie cookie:cookies){
out.print(cookie.getName()+"---"+cookie.getValue()+"<br/>");
}
%>
</body>
</html>
结果:
可以看到已经得到了我们需要的cookie了,划红线的其实是默认的cookie对象,可以按f12进入开发者模式在进入网络
如下:
其实是默认的。