Il miglior tutorial JSP Cookie Processing Nel 2024, in questo tutorial puoi imparare Analisi del biscotto,Servlet Metodi Cookie,Impostazioni cookie utilizzando JSP,Utilizzare JSP leggere Cookie,Utilizzare JSP Elimina Cookie,
Cookie è un file di testo memorizzato nel client, e risparmiare un sacco di informazioni sul brano. In base la tecnologia servlet, JSP pare essere in grado di fornire il supporto per il cookie HTTP.
In genere ci sono tre passi per identificare visitatori abituali:
In questo capitolo vi insegnerà come impostare o reimpostare le modalità dei cookie, e come accedervi e come rimuoverli.
JSP Cookie esigenze di elaborazione di codificare e decodificare cinese, come segue:
String str = java.net.URLEncoder.encode("中文"); //编码 String str = java.net.URLDecoder.decode("编码后的字符串"); // 解码
Cookie è di solito impostato (anche se JavaScript può essere impostata direttamente in un cookie del browser) nelle informazioni di intestazione HTTP. JSP, impostare un'intestazione cookie per inviare le seguenti informazioni al server:
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
Come si può vedere, intestazione Set-Cookie contiene una coppia chiave-valore, un tempo GMT (Greenwich Mean), un percorso, un nome di dominio. coppia chiave-valore è codificato come un URL. Validità del campo è un comando che indica al browser dopo che ora è possibile rimuovere questo cookie.
Se il browser è configurato per memorizzare dei cookie, allora sarà salvare le informazioni fino alla loro scadenza. Se l'utente visita una pagina corrispondono al percorso del cookie e il nome del dominio, quindi il browser si ri-inviare il cookie al server. intestazione browser-side simile a questa:
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
script JSP per accedere il cookie su richiesta degli oggetti getCookies metodo (), che restituisce un array di oggetti Cookie.
Nella tabella seguente sono elencati gli oggetti Cookie metodi comunemente usati:
No. | Metodo & descrizione |
---|---|
1 | setDomain public void (String pattern) Impostare il dominio dei cookie, come ad w3cschool.cc |
2 | public String getDomain () Ottenere dominio dei cookie, come ad w3cschool.cc |
3 | SetMaxAge public void (int di scadenza) Impostazione scadenza del cookie, in secondi, il valore predefinito è valida per la sessione corrente del tempo di sopravvivenza |
4 | public int getMaxAge () Ottenere scadenza del cookie, in secondi, il valore predefinito è -1, che indica che il cookie vivrà fino a chiusura del browser |
5 | public String getName () Restituisce il nome del cookie, il nome non può essere modificato dopo la creazione |
6 | setValue public void (String newValue) Impostare il valore del cookie |
7 | public String getValue () Ottiene il valore del cookie |
8 | SetPath public void (String uri) Impostare il percorso di cookie, il valore predefinito è l'URL corrente per tutte le directory le pagine, e tutte le sottodirectory sotto la |
9 | public String getPath () Get percorso del cookie |
10 | setSecure public void (booleano) Per indicare se la trasmissione cookie crittografato |
11 | SetComment public void (String scopo) Impostazione commento per descrivere lo scopo del cookie. Quando il cookie del browser presentati all'utente, commenti saranno molto utili |
12 | public String getComment () Restituisce il commento che descrive lo scopo del cookie, o null se non c'è |
Usa JSP set cookie è costituito da tre fasi:
(1) Creare un oggetto Cookie: chiamando il biscotto costruttore utilizzando un nome di cookie e di valore come parametri, che sono stringhe.
Cookie cookie = new Cookie("key","value");
Assicuratevi di tenere a mente che i nomi ei valori non possono contenere spazi oi seguenti caratteri:
[ ] ( ) = , " / ? @ : ;
(2) impostazione è valida: Call SetMaxAge () funzione indica per quanto tempo il cookie è valido all'interno (in secondi). Quanto segue imposta valido per 24 ore.
cookie.setMaxAge(60*60*24);
(3) invia il cookie di intestazioni di risposta HTTP: chiamata di funzione response.addCookie () per rispondere alla intestazione HTTP per aggiungere dei cookie.
response.addCookie(cookie);
codice del file main.jsp è il seguente:
<%@ 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>
Il seguente è un modulo HTML facile con il metodo GET per inviare i dati al file del client main.jsp e impostare il 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>
Salvare il codice HTML sopra in un file test.htm.
Inserire il file nella directory corrente sotto progetto WebContent jsp (con main.jsp stessa directory).
Visitando http: // localhost: 8080 / testjsp / test main.jsp inviare i dati del modulo in un file, Gif demo mostrato di seguito:
Provate a digitare "nome del sito" e "URL", quindi fare clic sul pulsante di invio, verrà visualizzato il "nome del sito" e "URL" nella schermata, e impostare il "nome del sito" e "URL" due biscotti.
Vuoi leggere il cookie, è necessario chiamare request.getCookies () per ottenere un array di oggetti javax.servlet.http.Cookie, e poi attraversare l'array utilizzando il metodo getName () e il metodo getValue () per ottenere ogni cookie il nome e il valore.
Leggiamo l'ultimo esempio del cookie, il seguente è codice del file 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>
Dopo l'accesso del browser, l'uscita è:
Rimuovere cookie è molto semplice. Se si desidera eliminare un cookie, per seguire i seguenti passi da fare sulla linea:
La seguente procedura elimina un cookie denominato "nome" quando si è il secondo cookie.jsp corsa, nome sarà nullo.
<%@ 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>
Si accede attraverso un browser, l'output è:
Un'altra visita http: // localhost: 8080 / testjsp / cookie.jsp, otterrà i seguenti risultati:
Si può vedere la larghezza name = "70%" "nome" del cookie non c'era più.
È anche possibile eliminare manualmente il cookie nel browser. browser IE cliccando sul menu Strumenti, quindi selezionare Opzioni Internet, fare clic su Elimina cookie, è possibile eliminare tutto il cookie.