Cookie介绍
cookie翻译为曲奇饼小甜点,在JavaWeb中是一种为了解决HTTP协议是无状态协议的会话跟踪技术。
Cookie运行原理
浏览器向服务器发起一次访问,服务器生成Cookie响应给浏览器,当浏览器再次访问的时候就会在请求中携带上次服务返回给Cookie,服务器根据用户访问携带的Cookie就可以找到上次访问生成的Cookie对象。
运行原理图如下
Cookie的使用
index.jsp页面
<%@page import="cookieDemo.Test"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p>这是CookieDemo</p>
<%
Cookie cookie1 = new Cookie("name","tom");
response.addCookie(cookie1);
Cookie[] cookies = request.getCookies();
if(cookies!=null){
for(Cookie cookie: cookies) {
System.out.println(cookie.getName() + ": "+ cookie.getValue());
}
}
%>
</body>
</html>
在控制台中显示:
第一次访问的时候请求中并没有Cookie,当再次访问该页面的时候;
再次访问的时候在请求中有了在页面设置的Cookie
控制台也把Cookie打印出来了。
可以使用cookie对象的setMaxAge方法设置Cookie过期时间。这样就可以控制Cookie生效的时间了,比如7天面登录之类的功能(但是使用Cookie安全性较差)。
Cookie和Session的比较
Cookie | Session | |
---|---|---|
保存位置 | 浏览器端 | 服务器端 |
安全性 | 相对较差 | 相对较好 |
服务器负担 | 较小 | 较大 |
跨域名 | 支持 | 不支持 |