Cómo utilizar cookies en Java
1. El origen y función de la cookie
La cookie es un archivo de texto guardado por el servidor WEB en el disco duro del cliente WWW a través del navegador. Este archivo de texto contiene información de texto.
El contenido de la información de texto se almacena en forma de pares "nombre/valor" (clave/valor).
Los desarrolladores WEB pueden leer y escribir este archivo de texto a través de programas.
El directorio donde se guardan las cookies en XP es "C://Documentos
y Configuración\Nombre de Usuario\Cookies"
La función de las cookies
Resolver la comunicación sin estado entre los usuarios del navegador y los servidores web.
2Programación de Cookies
//Crear objeto
Fecha
fecha = nueva Fecha();
Cookie
c = new Cookie("lastVisited", date.toString();
//Establece el tiempo de validez
En segundos
c.setMaxAge(60)
//Establecer ruta de cookie y nombre de dominio
c.setPath("/")
c.setDomain( " .zl.org")
; //El nombre de dominio debe comenzar con "."
//Enviar archivo cookie
response.addCookie(c)
//Leer Cookie
Cookie
cookies[] = request.getCookies()
Cookie
c1 = nulo;
if(cookies
!= nulo){
for(int
i=0; i
c1
= cookies[i];
out.println("cookie
nombre: " c1.getName() " "
out.println("cookie
valor: " c1.getValue() "
"); /p>
}
//Modificar Cookie
Cookie
cookies[] = request.getCookies();
Galleta
c = nula
for(int
i=0; i
c
= cookies[i];
if(c.getName().equals("lastVisited")){
c.setValue("2010-04-3-28")
c.setMaxAge(60*60*12)
response.addCookie(c)
//Actualización al navegador después de la modificación
p >}
}
//Eliminar cookie (establezca el tiempo de validez de la cookie en 0)
Cookie
cookies [] = request.getCookies();
Cookie
c = null;
for(int
i=0 ;i
c
= cookies[i] ;
if(c.getName().equals("última visita")){
c.setMaxAge(0);
response.addCookie(c)
}
}
4. Notas sobre el uso de cookies<. /p>
·El tamaño y número de cookies son limitados.
·La información de texto guardada por Cookie en el disco duro personal se guarda en formato de texto plano sin ninguna medida de cifrado.
·Los usuarios del navegador pueden configurar el no uso de cookies.
5. Ejemplo: Programación de cookies en Servlet
página cookieInput.html
SetCookie.java
GetCookie.java
Los parámetros en la página cookieInput.html se envían a SetCookie.java, que se guarda en la cookie del navegador. En SerCookie.java, está vinculado a GetCookie.java para leer la cookie recién guardada.
SetCookie.java
:
público
void doPost(solicitud HttpServletRequest, respuesta HttpServletResponse)
lanzamientos
ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter
out = respuesta.getWriter();
Cadena
nombre de usuario = request.getParameter("nombre de usuario");
//Guardar cookie
if(nombre de usuario
!=""){
Cookie
c1 = nueva Cookie("nombre de usuario", nombre de usuario);
SimpleDateFormat
sdf = new SimpleDateFormat("aaaa-MM-dd");
Cookie
c2 = new Cookie("última visita", sdf. formato(nuevo java.util.Date()));
c1.setMaxAge(60*60*60*12*30)
c2.setMaxAge(60*60*60 *12*30)
response.addCookie(c1)
response.addCookie(c2)
out.println("¡Cookie guardada correctamente!");
out.println("
")
out.println("Leer cookie"
}else{< /); p>
response.sendRedirect("../cookieInput.html")
}
out.flush();
out.close ( );
}
GetCookie.java:
público
void doPost(solicitud HttpServletRequest, respuesta HttpServletResponse)
lanza
ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter
salida = respuesta.getWriter();
salida.println("
");
salida.println("");
p>out.println("
");
out.println("
");
/ /Leer Cookie
Cookie
cookies[]
= request.getCookies();
Cookie
c = nulo
if(cookies
!= nulo){ p>
for(int
i=0; i
c
= cookies[i];
if( c.getName().equals("nombre de usuario")){
out.println("Nombre de usuario:
" c.getValue());
out.println("
");
}
if(c.getName().equals("última visita")){
out.println("Última hora de inicio de sesión:
" c.getValue());
}
}
}else{
out.println("¡Sin
cookie!");
}
out.println( " p>
");
out.println("
");
out.flush();
out.close();
}