O melhor tutorial JSP Processamento de Cookies em 2024. Neste tutorial você pode aprender Análise do bolinho,Métodos do bolinho de servlet,Definições cookies usando JSP,Use JSP para ler biscoito,Use JSP Excluir Cookies,
Cookie é um arquivo de texto armazenado no cliente, e eles guardar um monte de informações sobre a faixa. Na base da tecnologia servlet, JSP, aparentemente, ser capaz de fornecer suporte para o cookie HTTP.
Normalmente existem três etapas para identificar os visitantes do repeat:
Este capítulo irá ensinar-lhe como definir ou redefinir os métodos de cookies, e como acessá-los e como removê-los.
JSP Biscoito necessidades de processamento de codificar e decodificar chinesa, como segue:
String str = java.net.URLEncoder.encode("中文"); //编码 String str = java.net.URLDecoder.decode("编码后的字符串"); // 解码
Cookie é geralmente definida (embora JavaScript pode ser definida diretamente em um cookie do navegador) nas informações de cabeçalho HTTP. JSP, definir um cabeçalho de cookie para enviar as seguintes informações para o 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 você pode ver, o cabeçalho Set-Cookie contém um par chave-valor, um tempo GMT (Greenwich Mean), um caminho, um nome de domínio. par valor-chave é codificado como um URL. Validade do campo é um comando que diz ao navegador após o tempo que você pode remover esse cookie.
Se o seu navegador está configurado para armazenar cookies, então ele vai guardar as informações até ao seu termo. Se o usuário visitar qualquer página corresponder ao caminho do cookie e nome de domínio, em seguida, o navegador irá re-enviar o cookie de volta ao servidor. cabeçalho do lado do navegador parece com isso:
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
scripts de JSP para acessar o cookie getCookies objeto de solicitação de método (), que retorna uma matriz de objetos do bolinho.
A tabela a seguir lista os objetos do bolinho métodos comumente utilizados:
Não. | Method & descrição |
---|---|
1 | setDomain public void (padrão de String) Definir o domínio de cookie, tais w3cschool.cc |
2 | Cadeia getDomain pública () Obter domínio de cookie, tais w3cschool.cc |
3 | SetMaxAge public void (int validade) Definir validade do cookie, em segundos, o padrão é válido para a sessão atual do tempo de sobrevivência |
4 | getMaxAge int público () Obter validade do cookie, em segundos, o padrão é -1, indicando que o cookie vai viver até o navegador é fechado |
5 | Cadeia getName pública () Retorna o nome do cookie, o nome não pode ser alterado depois de criado |
6 | setValue public void (String newValue) Defina o valor do cookie |
7 | Public String getValue () Obtém o valor do cookie |
8 | SetPath public void (String uri) Definir o caminho do cookie, o padrão é o URL atual para todos os diretórios de páginas, e todos os subdiretórios sob o |
9 | Cadeia getPath pública () Obter caminho do cookie |
10 | setSecure public void (boolean flag) Para indicar se a transmissão cookie criptografado |
11 | SetComment public void (propósito String) Definindo comentário para descrever a finalidade do cookie. Quando o cookie do navegador apresentada ao usuário, os comentários será muito útil |
12 | Cadeia getComment pública () Retorna o comentário descrevendo o propósito do cookie, ou null se não houver |
Use JSP definido bolinho consiste em três etapas:
(1) Criar um objeto Cookie: chamando o Cookie construtor usando um nome de cookie e valor como parâmetros, eles são strings.
Cookie cookie = new Cookie("key","value");
Certifique-se de ter em mente que os nomes e valores não podem conter espaços ou os seguintes caracteres:
[ ] ( ) = , " / ? @ : ;
(2) definição é válida: Call SetMaxAge () função indica quanto tempo o cookie é válido dentro (em segundos). A seguir irá definir válida durante 24 horas.
cookie.setMaxAge(60*60*24);
(3) envia o cookie para os cabeçalhos de resposta HTTP: Chamar função response.addCookie () para responder ao cabeçalho HTTP para adicionar o cookie.
response.addCookie(cookie);
código de arquivo main.jsp é a seguinte:
<%@ 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>
O que se segue é um formulário HTML simples através do método GET para enviar dados para o arquivo main.jsp cliente e definir o 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>
Salve o código HTML acima em arquivo test.htm.
Coloque o arquivo no diretório atual no âmbito do projecto WebContent jsp (com main.jsp mesmo diretório).
Ao visitar http: // localhost: 8080 / testjsp / test main.jsp enviar os dados para um arquivo, Gif demonstração mostrado abaixo:
Experimente digitar "nome do site" e "URL", em seguida, clique no botão enviar, ele irá exibir o "nome do site" e "URL" em sua tela, e definir o "nome do site" e "URL" cookie dois.
Quer ler o cookie, você vai precisar ligar para request.getCookies () para obter uma matriz de javax.servlet.http.Cookie objeto e, em seguida, atravessar a matriz usando o método getValue () getName () método e para obter cada cookie o nome eo valor.
Vamos ler o último exemplo do cookie, o seguinte é o código de arquivo 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>
Após o acesso do browser, a saída é:
Remover cookie é muito simples. Se você deseja excluir um cookie, para seguir os passos abaixo para fazer na linha:
O procedimento a seguir exclui um cookie chamado "nome" quando você é o segundo cookie.jsp prazo, nome será nulo.
<%@ 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>
Acessado através de um navegador, a saída é:
Outra visita http: // localhost: 8080 / testjsp / cookie.jsp, terá os seguintes resultados:
Você pode ver a largura name = "70%" "nome" do cookie foi embora.
Você também pode excluir manualmente o cookie no seu browser. navegador IE, clicando no menu Ferramentas e selecione Opções da Internet, clique em Excluir Cookies, você pode excluir todo o cookie.