Nota de estudio 1: galleta

Galleta

La cookie es una especie de base proporcionada por el navegador. A través del programa del servidor, algunos datos que solo deben guardarse en el lado del cliente o procesarse en el lado del cliente se colocan en la computadora local y no necesitan ser transmitidos a través de la red, mejorando así el procesamiento de las páginas web, es eficiente y puede reducir la carga del servidor, pero debido a que la Cookie es la información que el servidor guarda en el cliente, la seguridad es pobre.
Las cookies se envían al cliente con la respuesta del servidor y se almacenan en el navegador. Devuelva la cookie al servidor cuando vuelva a visitarlo la próxima vez.

Creación y envío de cookies

Cree un objeto de cookie a través de new y almacene los datos
en la forma de valor clave. Si desea enviarlo al cliente, debe agregarlo al objeto de respuesta y devolverlo al cliente.

//创建Cookie对象
Cookie cookie = new Cookie("uname","zhangsan");
//响应回客户端
response.addCookie(cookie);

adquisición de cookies

Luego, el servidor solo proporciona un método getCookies () para obtener una matriz de todas las cookies devueltas por el cliente. Si necesita obtener una sola cookie, debe atravesar, getName () para obtener el nombre de la cookie y getValue ( ) para obtener el valor del nombre de la cookie.

//获取客户端上的Cookie数组
Cookie[] cookies = request.getCookies();
//判断数组是否为空
if(cookies != null && cookies.length > 0){
    
    
	//遍历cookie数组
	for(Cookie cookie : cookies){
    
    
		//获取cookie的名称和值
		System.out.println(cookie.getName);
		System.out.println(cookie.getValue);
	}
}

Tiempo de vencimiento (en vivo) de la configuración de cookies

El tiempo de caducidad se usa para especificar cuándo caduca la cookie, y el valor predeterminado es que el navegador actual caduca cuando se cierra .
Podemos establecer manualmente el tiempo efectivo de la cookie (calculado por el tiempo de vencimiento), y establecer el tiempo efectivo máximo de la cookie a través del método setMaxAge (int time);, en segundos.

Valor del tiempo de caducidad

  • Entero negativo
    Si es un número negativo, significa que la cookie no está almacenada. El
    valor predeterminado del atributo maxAge de la cookie es -1, lo que significa que solo sobrevive en la memoria del navegador. Una vez que se cierra la ventana del navegador, la cookie desaparecer
  • Entero positivo
    Si un entero mayor que 0, significa el número de segundos almacenados.
    Indica que el objeto de la cookie puede sobrevivir el número especificado de segundos. Cuando es mayor que 0, el navegador guardará la cookie en el disco duro, incluso si se cierra el navegador y se reinicia la computadora, la cookie sobrevivirá durante el tiempo correspondiente.
  • Cero
    Si es 0, significa eliminar la cookie. La
    duración de la cookie igual a 0 es un valor especial, lo que significa que la cookie no es válida. En otras palabras, si el navegador original ya ha guardado la cookie, puede eliminar la cookie a través de la cookie setMaxAge (0). Esta cookie se eliminará ya sea en la memoria del navegador o en el disco duro del cliente.

Consideraciones sobre cookies

  1. Las cookies se almacenan en el navegador actual y no se pueden utilizar en otros navegadores o computadoras, solo se almacenan en esta máquina.
  2. El problema de almacenar cookies en chino: el chino no se puede almacenar en cookies (tampoco se recomienda almacenar chino). Si hay chino, use URLEncode.encode () para codificarlo, y para codificarlo a través de URLDecoder.decode () al obtenerlo.
String name = "姓名";
String value = "王五";
//通过URLEncoder.encode()来进行编码
name = URLEncoder.encode(name);
value = URLEncoder.encode(value);

//创建Cookie对象
Cookie cookie =  new Cookie(name,value);
//发送cookie对象
response.addCookie(cookie);
//获取时通过 URLDecoder.decode();来进行编码
String name = URLDecoder.decode(cookie.getName);
String value = URLDecoder.decode(cookie.getValue);
  1. Problema de cookies del mismo nombre: si el servidor envía cookies duplicadas, la cookie original se sobrescribirá
  2. La cantidad de cookies almacenadas en el navegador: Los diferentes navegadores también tienen restricciones sobre las cookies.Hay un límite superior para el almacenamiento de cookies, y el tamaño de almacenamiento también es limitado, alrededor de 4 KB. Las cookies se almacenan en el navegador del cliente y, por lo general, las crea y configura el servidor. Más tarde, combine la sesión para realizar el seguimiento de la sesión.
  3. El objeto de la cookie se puede obtener solo si el valor de la ruta del objeto de la cookie se incluye en la ruta de acceso. El proyecto actual puede acceder a la cookie de forma predeterminada. Si tiene otros requisitos, puede usar cookie.setPath ("") ; el parámetro es especificar la cookie que necesita la ruta de la cookie.

Supongo que te gusta

Origin blog.csdn.net/qq_40492885/article/details/115227930
Recomendado
Clasificación