Java.net.HttpCookie em Java

Pré-requisito - Biscoitos

Muitos sites usam pequenas sequências de texto conhecidas como cookies para armazenar o estado persistente do lado do cliente entre as conexões. Os cookies são passados ​​do servidor para o cliente e vice-versa nos cabeçalhos HTTP de solicitações e respostas. Os cookies podem ser usados ​​por um servidor para indicar IDs de sessão, conteúdo do carrinho de compras, credenciais de login, preferências do usuário e muito mais. Um objeto HttpCookie representa um cookie http que transporta informações de estado entre o servidor e o agente do usuário. O cookie é amplamente adotado para criar sessões com estado. Existem 3 especificações de cookies http:

A classe HttpCookie pode aceitar todas essas 3 formas de sintaxe.

Construtor:

Cria um cookie com o nome e valor especificados. O nome deve conter apenas caracteres alfanuméricos ASCII e estar em conformidade com RFC 2965. Ele lança uma exceção IllegalArgument se o nome não estiver correto ou NullPointerException se o nome for nulo. O valor pode ser qualquer coisa que o cookie queira armazenar.

    Syntax :     public HttpCookie(String name   
String value)
Parameters :
name : name of cookie
value : value of cookie
Throws :
IllegalArgumentException : if name does not conform to RFC2965
NullPointerException : if name is null

Métodos:

  1. analisar() : retorna uma lista de cookies analisados ​​a partir da string do cabeçalho. o cabeçalho deve começar com o token set-cookie ou set-cookie2 ou não deve conter nenhum token.
        Syntax :     public static List parse(String header)   
    Parameters :
    header : String to be parsed as cookies
  2. hasExpired() : retorna um valor booleano que indica se o cookie expirou ou não.
        Syntax :     public boolean hasExpired()  
  3. setComment(): Usado para definir uma breve descrição da finalidade do cookie. É utilizado para apresentar o cookie ao usuário.
        Syntax :     public void setComment(String purpose)   
    Parameters :
    purpose : purpose of cookie
  4. getComment() : Retorna a descrição do cookie ou nulo se o cookie não tiver comentários.
        Syntax :     public void getComment()  
  5. setCommentURL(): Usado para definir um breve URL de comentário descrevendo a finalidade do cookie. É usado quando o navegador apresenta o cookie ao usuário.
        Syntax :     public void setCommentURL(String purpose)   
    Parameters :
    purpose : purpose of cookie
  6. getCommentURL(): Retorna o comentário de URL do cookie ou nulo se o cookie não tiver comentários de URL.
        Syntax :     public String getComment()  
  7. setDiscard(): Usado para definir se o agente do usuário deve descartar este cookie ou não.
        Syntax :     public void setDiscard(Boolean discard)   
    Parameters :
    discard : true if UA should discard otherwise false
  8. getDiscard(): Retorna o estado da variável de descarte definido pelo método setDiscard(). Mais especificamente, retorna verdadeiro se o UA descartar este cookie, caso contrário, será falso.
        Syntax :     public Boolean getDiscard()  
  9. setPortList(): Usado para especificar as portas que este cookie pode usar.
        Syntax :     public void setPortList(String portList)   
    Parameters :
    portList : String of comma separated digits specifying the ports.
  10. getPortList() : Retorna a lista de portas que este cookie pode usar.
        Syntax :     public String getPortList()  
  11. setDomínio() : Especifique o domínio no qual este cookie deve estar visível. Por exemplo, cookies enviados de um servlet em bali.vacations.com normalmente não seriam retornados pelo navegador para páginas em queensland.vacations.com. Se o site quisesse que isso acontecesse, os servlets poderiam especificar cookie.setDomain(.vacations.com). Para evitar que os servidores configurem cookies que se aplicam a hosts fora do seu domínio, o domínio especificado deve atender aos seguintes requisitos: deve começar com um ponto (por exemplo, .coreservlets.com).
        Syntax :     public void setDomain(String domain)   
    Parameters :
    domain : String representing the domain in which this cookie is visible
  12. getDomínio() : Retorna o domínio no qual este cookie está visível.
        Syntax :     public String getDomain()  
  13. setMaxAge(): usado para definir a idade máxima do cookie em segundos. Especifica o tempo máximo após a criação do cookie durante o qual ele permanece ativo. Valores negativos especificam que o cookie expirará assim que o navegador for encerrado.
        Syntax :     public void setMaxAge(long age)   
    Parameters :
    age : Max survive time in seconds
  14. getMaxAge() : Retorna a idade máxima do cookie.
        Syntax :     public long getMaxAge()  
  15. setPath(): Usado para especificar o caminho para o cliente no qual o cookie deve ser retornado. Este cookie é visível para todas as páginas e subdiretórios do caminho especificado. Por exemplo, se o servidor enviasse o cookie de http://ecommerce.site.com/toys/specials.html, o navegador enviaria o cookie de volta ao se conectar a http://ecommerce.site.com/to/beginners.html, mas não a http://ecommerce.site.com/c/classic.html.
        Syntax :     public void setPath(String uri)   
    Parameters :
    uri - a String specifying a path
  16. getPath(): Retorna o caminho definido para este cookie.
        Syntax :     public String getPath()  
  17. Implementação Java:
  18. Java
       // Java Program to illustrate various   // methods of java.net.HttpCookie class   public     class   httpcookie1      {      public     static     void     main  (  String  []     args  )         {      // Constructor to create a new cookie.      HttpCookie     cookie     =     new     HttpCookie  (  'First'       '1'  );      // setComment() method      cookie  .  setComment  (  'Just for explanation'  );      // getComment() method      System  .  out  .  println  (  'Comment : '     +     cookie  .  getComment  ());      // setCommentURL() method      cookie  .  setCommentURL  (  '192.168.1.1'  );      // getCommentURL() method      System  .  out  .  println  (  'CommentURL : '     +     cookie  .  getCommentURL  ());      // setDiscard() method      cookie  .  setDiscard  (  true  );      // getDiscard() method      System  .  out  .  println  (  'Discard : '     +     cookie  .  getDiscard  ());      // setPortlist() method      cookie  .  setPortlist  (  '10018520'  );      // getPortList() method      System  .  out  .  println  (  'Ports: '     +     cookie  .  getPortlist  ());      // setDomain() method      cookie  .  setDomain  (  '.localhost.com'  );      // getDomain() method      System  .  out  .  println  (  'Domain : '     +     cookie  .  getDomain  ());      // setMaxAge() method      cookie  .  setMaxAge  (  3600  );      // getMaxAge() method      System  .  out  .  println  (  'Max Age : '     +     cookie  .  getMaxAge  ());      // setPath() method      cookie  .  setPath  (  '192.168.1.1/admin/index.html'  );      // getPath() method      System  .  out  .  println  (  'Path: '     +     cookie  .  getPath  ());      }   }   
  19. Saída
  20.  Comment : Just for explanation   
    CommentURL : 192.168.1.1
    Discard : true
    Ports: 10018520
    Domain : .localhost.com
    Max Age : 3600
    Path: 192.168.1.1/admin/index.html
  21. setSecure() : Indicado se o protocolo seguro será usado durante o envio deste cookie. O valor padrão é falso.
        Syntax :     public void setSecure(boolean secure)   
    Parameters:
    secure - If true the cookie can only be sent over a secure protocol like https.
    If false it can be sent over any protocol.
  22. getSecure() : Retorna verdadeiro se este cookie precisar ser enviado por um protocolo seguro, caso contrário, será falso.
        Syntax :     public boolean getSecure()  
  23. getNome() : Retorna o nome do cookie.
           Syntax :     public String getName()  
  24. setValor(): Atribui um novo valor ao cookie após a inicialização.
        Syntax :     public void setValue(String newValue)   
    Parameters :
    newValue - a String specifying the new value
  25. obterValor: Retorna o valor do cookie.
        Syntax :     public String getValue()  
  26. getVersão() : Retorna 0 se o cookie estiver em conformidade com a especificação original do Netscape; 1 se o cookie estiver em conformidade com RFC 2965/2109
        Syntax :     public int getVersion()  
  27. setVersão(): Usado para definir a versão do protocolo de cookies que este cookie utiliza.
        Syntax :    public void setVersion(int v)   
    throws IllegalArgumentException
    Parameters :
    v - 0 for original Netscape specification; 1 for RFC 2965/2109
    Throws :
    IllegalArgumentException - if v is neither 0 nor 1
  28. isHttpOnly(): Retorna verdadeiro se o cookie só puder ser usado por http, ou seja, não pode ser usado por linguagens de script como JS vb etc.
        Syntax :     public boolean isHttpOnly()  
  29. setHttpOnly(): Usado para definir se este cookie é apenas http ou não.
        Syntax :     public void setHttpOnly(boolean httpOnly)   
    Parameters :
    httpOnly - if true make the cookie HTTP only i.e. only visible as part
    of an HTTP request.
  30. domínioMatches() : Função utilitária para verificar se o nome do host está no domínio ou não.
        Syntax :     public static boolean domainMatches(String domain   
    String host)
    Parameters :
    domain : domain to check hostname with
    host : host to check
  31. toString(): Constrói uma representação em cadeia deste cookie.
           Syntax :    public String toString()  
  32. igual(): retorna verdadeiro se dois cookies http forem iguais, caso contrário, falso.
           Syntax :    public boolean equals(Object obj)  
  33. hashCode(): Retorna o código hash deste cookie http. O resultado é a soma do valor do código hash de três componentes significativos deste cookie: nome, domínio e caminho. Substitui hashCode na classe Object.
        Syntax :     public int hashCode()  
  34. clonar(): Crie e retorne uma cópia deste objeto. Substitui o método clone da classe de objeto.
        Syntax :     public Object clone()  

Implementação Java:

Java
   // Java Program to illustrate various   // methods of java.net.HttpCookie class   import     java.net.HttpCookie  ;   public     class   httpcookie1      {      public     static     void     main  (  String  []     args  )         {      // Constructor to create a new cookie.      HttpCookie     cookie     =     new     HttpCookie  (  'First'       '1'  );      // setSecure() method      cookie  .  setSecure  (  true  );      // getSecure() method      System  .  out  .  println  (  'Secure : '     +     cookie  .  getSecure  ());      // getName() method      System  .  out  .  println  (  'Name : '     +     cookie  .  getName  ());      // setValue() method : can be used to modify value of cookie.      cookie  .  setValue  (  '2'  );      // getvalue() method      System  .  out  .  println  (  'Value : '     +     cookie  .  getValue  ());      // setVersion() method      cookie  .  setVersion  (  1  );      // getVersion() method      System  .  out  .  println  (  'Version : '     +     cookie  .  getVersion  ());      // setHttPonly() method      cookie  .  setHttpOnly  (  true  );      // isHttpOnly() method      System  .  out  .  println  (  'is HTTP only : '     +     cookie  .  isHttpOnly  ());      // toString() method      System  .  out  .  println  (  'toString : '     +     cookie  .  toString  ());      // hashcode() method      System  .  out  .  println  (  'Hashcode : '     +     cookie  .  hashCode  ());      }   }   

Saída :

 Secure : true   
Name : First
Value : 2
Version : 1
is HTTP only : true
toString : First='2'
Hashcode : 97440432

Outro exemplo para mostrar como os cookies são realmente utilizados pelos servidores Web nos quais imprimimos os detalhes dos cookies armazenados por www.facebook.com

Java
   import     java.io.IOException  ;   import     java.net.CookieHandler  ;   import     java.net.CookieManager  ;   import     java.net.CookieStore  ;   import     java.net.HttpCookie  ;   import     java.net.URL  ;   import     java.net.URLConnection  ;   import     java.util.List  ;   public     class   httpcookie1      {      public     static     void     main  (  String  []     args  )     throws     IOException         {      String     urlString     =     'https://www.facebook.com/'  ;      // Create a default system-wide CookieManager      CookieManager     cookieManager     =     new     CookieManager  ();      CookieHandler  .  setDefault  (  cookieManager  );      // Open a connection for the given URL      URL     url     =     new     URL  (  urlString  );      URLConnection     urlConnection     =     url  .  openConnection  ();      urlConnection  .  getContent  ();      // Get CookieStore which is the default internal in-memory      CookieStore     cookieStore     =     cookieManager  .  getCookieStore  ();      // Retrieve all stored HttpCookies from CookieStore      List   <  HttpCookie  >     cookies     =     cookieStore  .  getCookies  ();      int     cookieIdx     =     0  ;      // Iterate HttpCookie object      for     (  HttpCookie     ck     :     cookies  )     {      System  .  out  .  println  (  '------ Cookie.'     +     ++  cookieIdx     +     ' -------'  );      // Get the cookie name      System  .  out  .  println  (  'Cookie name: '     +     ck  .  getName  ());      // Get the domain set for the cookie      System  .  out  .  println  (  'Domain: '     +     ck  .  getDomain  ());      // Get the max age of the cookie      System  .  out  .  println  (  'Max age: '     +     ck  .  getMaxAge  ());      // Get the path of the server      System  .  out  .  println  (  'Server path: '     +     ck  .  getPath  ());      // Get boolean if the cookie is being restricted to a secure      // protocol      System  .  out  .  println  (  'Is secured: '     +     ck  .  getSecure  ());      // Gets the value of the cookie      System  .  out  .  println  (  'Cookie value: '     +     ck  .  getValue  ());      // Gets the version of the protocol with which the given cookie is      // related.      System  .  out  .  println  (  'Cookie protocol version: '     +     ck  .  getVersion  ());      }      }   }   

Saída :

 ------------------ Cookie.1 ------------------   
Cookie name: fr
Domain: .facebook.com
Max age: 7775999
Server path: /
Is secured: true
Cookie value: 0Xj7tBSsWlmtXPo92..BZFC8G.qC.AAA.0.0.BZFC8G.AWUwiIgM
Cookie protocol version: 0

Referência:

Documentação oficial Java

Criar questionário