El viaje mental de aprender la web front-end ------ tecnología de sesión Cookie y Sesión


inserte la descripción de la imagen aquí

Conceptos de tecnología conversacional

  Sesión : una sesión contiene múltiples solicitudes y respuestas.

  Una sesión : el navegador envía una solicitud al recurso del servidor por primera vez y la sesión se establece hasta que una de las partes se desconecta.

  Función : compartir datos entre múltiples solicitudes dentro del alcance de una sesión

  Formas :
    1. Tecnología de sesión del lado del cliente: Cookie
    2. Tecnología de sesión del lado del servidor: Sesión

Galleta

  Concepto : tecnología de sesión del lado del cliente, guardando datos para el cliente

Inicio rápido:

* 使用步骤:
	1. 创建Cookie对象,绑定数据
		* new Cookie(String name, String value) 
	2. 发送Cookie对象
		* response.addCookie(Cookie cookie) 
	3. 获取Cookie,拿到数据
		* Cookie[]  request.getCookies()  

  Principio de implementación : basado en la implementación de cookies de conjunto de encabezado de respuesta y encabezado de solicitud

Detalles de las cookies:

1. 一次可不可以发送多个cookie?
	* 可以
	* 可以创建多个Cookie对象,使用response调用多次addCookie方法发送cookie即可。
2. cookie在浏览器中保存多长时间?
	1. 默认情况下,当浏览器关闭后,Cookie数据被销毁
	2. 持久化存储:
		* setMaxAge(int seconds)
			a. 正数:将Cookie数据写到硬盘的文件中。持久化存储。并指定cookie存活时间,时间到后,cookie文件自动失效
			b. 负数:默认值
			c. 零:删除cookie信息
3. cookie能不能存中文?
	* 在tomcat 8 之前 cookie中不能直接存储中文数据。
		* 需要将中文数据转码---一般采用URL编码(%E3)
	* 在tomcat 8 之后,cookie支持中文数据。特殊字符还是不支持,建议使用URL编码存储,URL解码解析
4. cookie共享问题?
	1. 假设在一个tomcat服务器中,部署了多个web项目,那么在这些web项目中cookie能不能共享?
		* 默认情况下cookie不能共享
		* setPath(String path):设置cookie的获取范围。默认情况下,设置当前的虚拟目录
			* 如果要共享,则可以将path设置为"/"

Características y funciones de las cookies:

  • Características:
    1. Las cookies almacenan datos en el navegador del cliente
    2. El navegador tiene un límite en el tamaño de una sola cookie (4kb) y un límite en el número total de cookies bajo el mismo nombre de dominio (20)
  • Funciones:
    1. Las cookies se utilizan generalmente para almacenar una pequeña cantidad de datos menos sensibles
    2. Completar la identificación del servidor del cliente sin iniciar sesión

Caso: Recordar la hora de la última visita

1. 需求:
	a. 访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问。
	b. 如果不是第一次访问,则提示:欢迎回来,您上次访问时间为:显示时间字符串

2. 分析:
	a. 可以采用Cookie来完成
	b. 在服务器中的Servlet判断是否有一个名为lastTime的cookie
		a. 有:不是第一次访问
			1. 响应数据:欢迎回来,您上次访问时间为:201861011:50:20
			2. 写回Cookie:lastTime=201861011:50:01
		b. 没有:是第一次访问
			1. 响应数据:您好,欢迎您首次访问
			2. 写回Cookie:lastTime=201861011:50:01

Sesión

  Concepto : tecnología de sesión del lado del servidor, que comparte datos entre múltiples solicitudes en una sesión y guarda los datos en objetos del lado del servidor. Sesión Http

Inicio rápido:

1. 获取HttpSession对象:
	HttpSession session = request.getSession();
2. 使用HttpSession对象:
	Object getAttribute(String name)  
	void setAttribute(String name, Object value)
	void removeAttribute(String name)  

  Principio : la implementación de la sesión depende de la cookie.

Detalles de la sesión:

1. Cuando se cierra el cliente, el servidor no cierra, ¿se obtiene el doble de sesión?
  默认情况下。不是。

  如果需要相同,则可以创建Cookie,键为JSESSIONID,设置最大存活时间,让cookie持久化保存。
  ​Cookie c = nueva Cookie(“JSESSIONID”,session.getId());
  c.setMaxAge(60*60);
  respuesta.addCookie( c );

2. No se cierra el cliente, después de cerrar el servidor, ¿se obtiene el doble de sesión?
  不是同一个,但是要确保数据不丢失。tomcat自动完成以下工作

  • ​Pasivación de sesión:
      serialice el objeto de sesión en el disco duro antes de que el servidor se apague normalmente
  • ​Activación de sesión:
      una vez que se inicia el servidor, el archivo de sesión se puede convertir en un objeto de sesión en la memoria.

3. ¿Cuándo se destruye la sesión?
  1. El servidor se apaga
  2. El objeto de sesión llama a invalidate().
  3. El tiempo de vencimiento predeterminado de la sesión es de 30 minutos.

  Modificación de configuración opcional:

<session-config>
<session-timeout>30</session-timeout>
</session-config>

Características de la sesión:

  • La sesión se utiliza para almacenar los datos de múltiples solicitudes para una sesión, que se almacena en el lado del servidor
  • Las sesiones pueden almacenar datos de cualquier tipo y tamaño

La diferencia entre sesión y cookie:

	1. session存储数据在服务器端,Cookie在客户端
	2. session没有数据大小限制,Cookie有
	3. session数据安全,Cookie相对于不安全

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/S_yyuan/article/details/122602610
Recomendado
Clasificación