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,

JSP Processamento de 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:

  • script de servidor envia uma série de cookie para o navegador. Tais como nome, idade, número de identificação, etc.
  • Navegadores armazenar essas informações na máquina local, para se preparar para contingências.
  • A próxima vez que o navegador envia qualquer solicitação para o servidor, ele também será enviado para o servidor as informações do cookie, eo servidor usa essa informação para identificar o usuário ou para fazer algumas outras coisas.

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("编码后的字符串");   // 解码

Análise do bolinho

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.


Métodos do bolinho de servlet

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

Definições cookies usando JSP

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);

Exemplos Demonstração

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.


Use JSP para ler biscoito

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 é:


Use JSP Excluir Cookies

Remover cookie é muito simples. Se você deseja excluir um cookie, para seguir os passos abaixo para fazer na linha:

  • Sendo um cookie existente é então armazenado num objecto de biscoito.
  • A cookie será definido como 0.
  • Este cookie será adicionado de volta o cabeçalho de resposta.

Exemplos Demonstração

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.

JSP Processamento de Cookies
10/30