El mejor tutorial de Procesamiento de la galleta JSP en 2024. En este tutorial podrás aprender Análisis de la galleta,Métodos de cookies de servlets,Ajustes de cookies utilizando JSP,Utilizar JSP para leer la galleta,Utilizar JSP Eliminar Cookies,
Cookie es un archivo de texto almacenado en el cliente, y guardar una gran cantidad de información de la pista. En base a la tecnología de servlets, JSP parecer ser capaz de proporcionar apoyo a la cookie HTTP.
Por lo general hay tres pasos para identificar visitantes de la repetición:
Este capítulo le enseñará cómo establecer o restablecer los métodos de galletas, y cómo acceder a ellos y cómo eliminarlos.
JSP galleta necesidades de procesamiento de codificar y decodificar chino, como sigue:
String str = java.net.URLEncoder.encode("中文"); //编码 String str = java.net.URLDecoder.decode("编码后的字符串"); // 解码
Cookie se establece por lo general (aunque JavaScript se puede establecer directamente en una cookie del navegador) en la información del encabezado HTTP. JSP, establecer una cabecera de cookies para enviar la siguiente información al servidor:
HTTP/1.1 200 OK Date: Fri, 04 Feb 2015 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: name=w3big; expires=Friday, 04-Feb-07 22:03:38 GMT; path=/; domain=w3write.com Connection: close Content-Type: text/html
Como se puede ver, la cabecera Set-Cookie contiene un par clave-valor, una hora GMT (Greenwich Mean), un camino, un nombre de dominio. par clave-valor se codifica como una dirección URL. Validez del campo es un comando que indica al navegador después de la hora a la que puede eliminar esta cookie.
Si su navegador está configurado para almacenar cookies, entonces se guardará la información hasta su expiración. Si el usuario visita alguna página del partido de la ruta de la cookie y el nombre de dominio, a continuación, el navegador va a volver a enviar la cookie de vuelta al servidor. cabecera del lado del navegador es el siguiente:
GET / HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc) Host: zink.demon.co.uk:1126 Accept: image/gif, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8 Cookie: name=xyz
secuencias de comandos JSP para acceder a la cookie por el método (), que devuelve un array de objetos Cookie getCookies de solicitud de objetos.
La siguiente tabla muestra los objetos Cookie métodos comúnmente utilizados:
No. | Método y Descripción |
---|---|
1 | pública setDomain vacío (Patrón de encordado) Establecer el dominio de las cookies, tales w3cschool.cc |
2 | Cadena GetDomain pública () Obtener dominio de las cookies, tales w3cschool.cc |
3 | pública SetMaxAge void (int caducidad) Configuración de caducidad de la cookie, en cuestión de segundos, el valor predeterminado es válido para la sesión actual del tiempo de supervivencia |
4 | public int getMaxAge () Obtener caducidad de la cookie, en cuestión de segundos, el valor predeterminado es -1, que indica que la cookie vivirá hasta el navegador se cierra |
5 | Public String getName () Devuelve el nombre de la cookie, el nombre no se puede cambiar después de que se creó |
6 | pública setValue vacío (String nuevoValor) Establecer el valor de la cookie |
7 | Cadena getValue pública () Obtiene el valor de la cookie |
8 | pública setPath vacío (cadena URI) Configuración de la ruta de la cookie, el valor predeterminado es la URL actual para todos directorio de páginas, y todos los subdirectorios bajo el |
9 | Cadena getPath pública () Obtener ruta de cookies |
10 | setSecure public void (boolean flag) Para indicar si la transmisión cookie cifrada |
11 | pública SetComment vacío (propósito String) Configuración comentario para describir la finalidad de la cookie. Cuando la cookie del navegador presenta al usuario, los comentarios serán muy útiles |
12 | Cadena getComment pública () Devuelve el comentario que describe el propósito de la cookie, o null si no hay |
Uso de JSP conjunto de cookies consta de tres pasos:
(1) Crear un objeto Cookie: llamando al constructor de la galleta usando un nombre de la cookie y valor como parámetros, que son cadenas.
Cookie cookie = new Cookie("key","value");
Asegúrese de tener en cuenta que los nombres y los valores no pueden contener espacios ni los siguientes caracteres:
[ ] ( ) = , " / ? @ : ;
(2) ajuste es válido: Call SetMaxAge () función indica el tiempo que la cookie es válida dentro (en segundos). Lo siguiente configurará una validez de 24 horas.
cookie.setMaxAge(60*60*24);
(3) envía la cookie a las cabeceras de respuesta HTTP: llamada a la función response.addCookie () para responder a la cabecera HTTP para agregar la galleta.
response.addCookie(cookie);
código de archivo main.jsp es el siguiente:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.net.*" %> <% // 编码,解决中文乱码 String str = URLEncoder.encode(request.getParameter("name"),"utf-8"); // 设置 name 和 url cookie Cookie name = new Cookie("name", str); Cookie url = new Cookie("url", request.getParameter("url")); // 设置cookie过期时间为24小时。 name.setMaxAge(60*60*24); url.setMaxAge(60*60*24); // 在响应头部添加cookie response.addCookie( name ); response.addCookie( url ); %> <html> <head> <title>设置 Cookie</title> </head> <body> <h1>设置 Cookie</h1> <ul> <li><p><b>网站名:</b> <%= request.getParameter("name")%> </p></li> <li><p><b>网址:</b> <%= request.getParameter("url")%> </p></li> </ul> </body> </html>
El siguiente es un simple formulario HTML mediante el método GET para enviar datos al archivo main.jsp cliente y establece la cookie:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>本教程(w3write.com)</title> </head> <body> <form action="main.jsp" method=GET> 站点名: <input type="text" name="name"> <br /> 网址: <input type="text" name="url" /> <input type="submit" value="提交" /> </form> </body> </html>
Guarde el código HTML anterior en un archivo test.htm.
Coloque el archivo en el directorio actual y con proyecto WebContent JSP (con main.jsp el mismo directorio).
En la página http: // localhost: 8080 / testjsp / test main.jsp enviar los datos del formulario a un archivo, el GIF de demostración se muestra a continuación:
Pruebe a escribir "nombre del sitio" y "URL", a continuación, haga clic en el botón de enviar, se mostrará el "nombre del sitio" y "URL" en la pantalla y ajustar el "nombre del sitio" y "URL" dos galletas.
¿Quieres leer la cookie, tendrá que llamar al método request.getCookies () para obtener una matriz de objetos javax.servlet.http.Cookie, y luego atravesar la matriz mediante el método getValue () método getName () y para conseguir cada galleta el nombre y valor.
Vamos a leer el último ejemplo de la cookie, el siguiente es el código de archivo cookie.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.net.*" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>获取 Cookie</title> </head> <body> <% Cookie cookie = null; Cookie[] cookies = null; // 获取cookies的数据,是一个数组 cookies = request.getCookies(); if( cookies != null ){ out.println("<h2> 查找 Cookie 名与值</h2>"); for (int i = 0; i < cookies.length; i++){ cookie = cookies[i]; out.print("参数名 : " + cookie.getName()); out.print("<br>"); out.print("参数值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" <br>"); out.print("------------------------------------<br>"); } }else{ out.println("<h2>没有发现 Cookie</h2>"); } %> </body> </html>
Después de que el acceso del navegador, la salida es:
Eliminar cookie es muy simple. Si desea eliminar una cookie, seguir los siguientes pasos para hacer en la línea:
El siguiente procedimiento elimina una cookie llamada "nombre" cuando se está cookie.jsp la segunda carrera, el nombre será nula.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.net.*" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>获取 Cookie</title> </head> <body> <% Cookie cookie = null; Cookie[] cookies = null; // 获取当前域名下的cookies,是一个数组 cookies = request.getCookies(); if( cookies != null ){ out.println("<h2> 查找 Cookie 名与值</h2>"); for (int i = 0; i < cookies.length; i++){ cookie = cookies[i]; if((cookie.getName( )).compareTo("name") == 0 ){ cookie.setMaxAge(0); response.addCookie(cookie); out.print("删除 Cookie: " + cookie.getName( ) + "<br/>"); } out.print("参数名 : " + cookie.getName()); out.print("<br>"); out.print("参数值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" <br>"); out.print("------------------------------------<br>"); } }else{ out.println("<h2>没有发现 Cookie</h2>"); } %> </body> </html>
Se accede a través de un navegador, la salida es:
Otra visita http: // localhost: 8080 / testjsp / cookie.jsp, obtendrá los siguientes resultados:
Se puede ver el ancho name = "70%" "nombre" de la cookie se había ido.
También puede eliminar manualmente la cookie en su navegador. el navegador Internet Explorer haciendo clic en el menú Herramientas y seleccione Opciones de Internet, haga clic en Eliminar cookies, puede eliminar toda la galleta.