JavaWeb ---- Cookie & Sesión

## sesiones técnicas

1, Sesión: una sesión comprende múltiples solicitudes y respuestas.

  * Primera sesión: El primer navegador envía una petición a los recursos del servidor, el establecimiento de sesión, hasta que una parte fuera hasta ahora.

2, función: el rango entre múltiples peticiones de la sesión de nuevo, los datos compartidos

3 maneras:

  1, tecnología de sesión de cliente: Galleta

  2, las técnicas de sesión del servidor de sesión:  

 

## Galleta

1, conceptos: los datos almacenados en el cliente, la tecnología de sesión de cliente

2, Primeros pasos:

  * Use estos pasos:

    1, crear un enlace de datos objeto de la galleta

    * Nueva cookie (String nombre, String value)

    2, la transmisión objeto de la galleta

    * Response.addCookie (la galleta)

    3, consiguen Galleta, obtener los datos

    * galleta [] request.getCookies ()

empaquetar com.Cookie.demo01; 

importación javax.servlet.ServletException;
importación javax.servlet.annotation.WebServlet;
importación javax.servlet.http.Cookie;
importación javax.servlet.http.HttpServlet;
importación javax.servlet.http.HttpServletRequest;
importación javax.servlet.http.HttpServletResponse;
importación java.io.IOException; 

/ ** 
 * Cookies快速入门
 * / 
@WebServlet ( "/ CookieDemo01" )
 pública  clase CookieDemo01 extiende HttpServlet { 
    @ Override 
    protegida  vacíodoPost (HttpServletRequest solicitud, HttpServletResponse respuesta) lanza ServletException, IOException {
         // 1,创建galleta对象 
        galleta de la galleta = nuevo Cookie ( "msg", "Hola" );
        // 2,发送galleta 
        response.addCookie (cookie); 
    } 

    @ Override 
    protegida  vacío doGet (HttpServletRequest solicitud, HttpServletResponse respuesta) lanza ServletException, IOException {
         este .doPost (petición y respuesta); 
    } 
}
empaquetar com.Cookie.demo01; 

importación javax.servlet.ServletException;
importación javax.servlet.annotation.WebServlet;
importación javax.servlet.http.Cookie;
importación javax.servlet.http.HttpServlet;
importación javax.servlet.http.HttpServletRequest;
importación javax.servlet.http.HttpServletResponse;
importación java.io.IOException; 

/ ** 
 *获取Cookies 
 * / 
@WebServlet ( "/ CookieDemo02" )
 pública  clase CookieDemo02 extiende HttpServlet { 
    @ Override 
    protegida  vacíodoPost (HttpServletRequest solicitud, HttpServletResponse respuesta) lanza ServletException, IOException {
         // 3,获取de la galleta 
        de la galleta [] cs = request.getCookies ();
        // 获取数据,遍历cookies 
        si (cs =! Nula ) {
             a (c Cookies: cs) { 
                String name = c.getName (); 
                Valor de la cadena = c.getValue (); 
                System.out.println (nombre + ":" + valor); 
            } 
        } 
    } 

    @ Override 
    protegida  vacíodoGet (HttpServletRequest solicitud, HttpServletResponse respuesta) lanza ServletException, IOException {
         este .doPost (solicitud, respuesta); 
    } 
}

3. El principio

  * Basado en la respuesta, y la cabecera de la solicitud Set-Cookie cabecera de cookies para lograr

 

 

 

 

4, los detalles de la galleta

  1, una vez que se puede enviar múltiples galleta?

    * Can

    * Cookies puede crear varios objetos, muchas veces addCookie método se puede utilizar para enviar las llamadas de respuesta de galletas.

  2, galleta almacenada en el navegador por cuánto tiempo?

    1, de forma predeterminada, cuando se cierra el navegador, datos de una cookie se destruye

    2, el almacenamiento persistente:

    * SetMaxAge (int segundos)

      1, un número positivo: datos de una cookie se escribe en el archivo de disco duro. almacenamiento persistente. la galleta tiempo de supervivencia.

      2, negativo: por defecto

      3. Cero: información Eliminar cookie

empaquetar com.Cookie.demo01; 

importación javax.servlet.ServletException;
importación javax.servlet.annotation.WebServlet;
importación javax.servlet.http.Cookie;
importación javax.servlet.http.HttpServlet;
importación javax.servlet.http.HttpServletRequest;
importación javax.servlet.http.HttpServletResponse;
importación java.io.IOException; 

/ ** 
 * Cookies快速入门
 * / 
@WebServlet ( "/ CookieDemo01" )
 pública  clase CookieDemo01 extiende HttpServlet { 
    @ Override 
    protegida  vacíodoPost (la solicitud de HttpServletRequest, la respuesta HttpServletResponse) lanza ServletException, IOException {
         // 1, crear un objeto Cookie. 
        Galleta Galleta = nueva nueva Cookie ( "MSG", "Hola" );
         // establecer la supervivencia de cookies
         // negativo predeterminado de supervivencia de 30 segundos (cerrar el navegador ha ido) 0 información de cookies de eliminación 
        cookie.setMaxAge (30 );
         // 2, transmite las cookies 
        response.addCookie (cookie); 
    } 

    @ Override 
    protegida  vacío doGet (HttpServletRequest la petición, la respuesta HttpServletResponse) lanza ServletException, IOException {
         este.doPost (solicitud, respuesta); 
    } 
}
empaquetar com.Cookie.demo01; 

importación javax.servlet.ServletException;
importación javax.servlet.annotation.WebServlet;
importación javax.servlet.http.Cookie;
importación javax.servlet.http.HttpServlet;
importación javax.servlet.http.HttpServletRequest;
importación javax.servlet.http.HttpServletResponse;
importación java.io.IOException; 

/ ** 
 *获取Cookies 
 * / 
@WebServlet ( "/ CookieDemo02" )
 pública  clase CookieDemo02 extiende HttpServlet { 
    @ Override 
    protegida  vacíodoPost (HttpServletRequest solicitud, HttpServletResponse respuesta) lanza ServletException, IOException {
         // 3,获取de la galleta 
        de la galleta [] cs = request.getCookies ();
        // 获取数据,遍历cookies 
        si (cs =! Nula ) {
             a (c Cookies: cs) { 
                String name = c.getName (); 
                Valor de la cadena = c.getValue (); 
                System.out.println (nombre + ":" + valor); 
            } 
        } 
    } 

    @ Override 
    protegida  vacíodoGet (HttpServletRequest solicitud, HttpServletResponse respuesta) lanza ServletException, IOException {
         este .doPost (solicitud, respuesta); 
    } 
}

 

  3, cookie no puede salvar a China?

    * Antes de tmocat8 cookie no se puede almacenar directamente en los datos de China

      * necesidades de datos chinas para transcodificar ---- barcos URL codificada (% E3)

    * Después de los datos de cookies Tomcat8 se pueden almacenar en chino

  4, adquieren la galleta en qué medida?

    1, suponiendo un servidor tmocat, implementar una serie de proyectos web, la cookie no puede compartir en estas proyecto web?

      * Cookies por defecto no puede ser compartida

      * SetPath (String path): establece un rango de adquisición de galletas. Por defecto, establecer el directorio virtual actual

      * Si desea compartir, puede establecer la ruta a "/"

    2, entre diferentes intercambio de galletas servidor Tomcat?

      * SetDomain (String path): Si un nombre de dominio idéntico, entonces la cookie entre varios servidores para compartir la disposición

        * SetDomain ( "Baidu, com"), y luego tieba.baidu.com news.baidu.com en la cookie se puede compartir

5, las características y funciones de la galleta

  1, los datos de cookie se almacena en el navegador del cliente

  2, el navegador es limitado (4 kb) para un único tamaño de la galleta y hay un límite en el número total de galleta bajo el mismo nombre de dominio (20)

 

  * Función:

   1, galleta es generalmente menos sensibles para el almacenamiento de pequeñas cantidades de datos

   2, sin necesidad de acceder, completando el servidor a la identidad del cliente

Supongo que te gusta

Origin www.cnblogs.com/21seu-ftj/p/12563456.html
Recomendado
Clasificación