Java.net.HttpCookie valodā Java

Priekšnosacījums - Sīkdatnes

Daudzas vietnes izmanto nelielas teksta virknes, kas pazīstamas kā sīkfaili, lai saglabātu pastāvīgu klienta puses stāvokli starp savienojumiem. Sīkfaili tiek nosūtīti no servera uz klientu un atkal HTTP pieprasījumu un atbilžu galvenēs. Serveris var izmantot sīkfailus, lai norādītu sesijas ID, iepirkumu groza saturu, pieteikšanās akreditācijas datus, lietotāja preferences un citus. Objekts HttpCookie ir http sīkfails, kas pārnēsā informāciju par stāvokli starp serveri un lietotāja aģentu. Sīkfails tiek plaši izmantots, lai izveidotu statusa sesijas. Ir 3 http sīkfailu specifikācijas:

HttpCookie klase var pieņemt visus šos 3 sintakses veidus.

Konstruktors:

Izveido sīkfailu ar norādīto nosaukumu un vērtību. Nosaukumā ir jāsatur tikai ASCII burtu un ciparu rakstzīmes un jāatbilst RFC 2965. Tas rada izņēmumu IllegalArgument, ja nosaukums nav pareizs, vai NullPointerException, ja nosaukums ir nulle. Vērtība var būt jebkas, ko sīkfails vēlas saglabāt.

    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

Metodes:

  1. parse () : atgriež no galvenes virknes parsētu sīkfailu sarakstu. galvenei jāsākas ar set-cookie vai set-cookie2 marķieri, vai arī tajā nedrīkst būt vispār neviena marķiera.
        Syntax :     public static List parse(String header)   
    Parameters :
    header : String to be parsed as cookies
  2. ir beidzies() : atgriež Būla vērtību, norādot, vai sīkfailam ir beidzies derīguma termiņš.
        Syntax :     public boolean hasExpired()  
  3. setComment() : Izmanto, lai iestatītu īsu aprakstu, kurā aprakstīts sīkfaila mērķis. To izmanto, kad lietotājam tiek parādīts sīkfails.
        Syntax :     public void setComment(String purpose)   
    Parameters :
    purpose : purpose of cookie
  4. getComment() : Atgriež sīkfaila aprakstu vai nulli, ja sīkfailam nav komentāru.
        Syntax :     public void getComment()  
  5. setCommentURL() : Izmanto, lai iestatītu īsu komentāra URL, kas apraksta sīkfaila mērķi. To izmanto, kad pārlūkprogramma lietotājam uzrāda sīkfailu.
        Syntax :     public void setCommentURL(String purpose)   
    Parameters :
    purpose : purpose of cookie
  6. getCommentURL() : Atgriež sīkfaila URL komentāru vai nulli, ja sīkfailam nav URL komentāru.
        Syntax :     public String getComment()  
  7. setDiscard() : Izmanto, lai iestatītu, vai lietotāja aģentam ir jāatmet šis sīkfails.
        Syntax :     public void setDiscard(Boolean discard)   
    Parameters :
    discard : true if UA should discard otherwise false
  8. getDiscard() : Atgriež atmešanas mainīgā stāvokli, kas iestatīts ar metodi setDiscard(). Precīzāk, atgriež patieso vērtību, ja UA ir jāatmet šis sīkfails, pretējā gadījumā tas ir nepatiess.
        Syntax :     public Boolean getDiscard()  
  9. setPortList() : Izmanto, lai norādītu portus, kurus šī sīkdatne var izmantot.
        Syntax :     public void setPortList(String portList)   
    Parameters :
    portList : String of comma separated digits specifying the ports.
  10. getPortList() : Atgriež portu sarakstu, ko šis sīkfails var izmantot.
        Syntax :     public String getPortList()  
  11. setDomain() : Norādiet domēnu, kurā šim sīkfailam jābūt redzamam. Piemēram, sīkfailus, kas nosūtīti no servleta vietnē bali.vacations.com, pārlūkprogramma parasti neatgriež lapās vietnē queensland.vacations.com. Ja vietne vēlas, lai tas notiktu, servleti varētu norādīt cookie.setDomain(.vacations.com). Lai serveri nevarētu iestatīt sīkfailus, kas attiecas uz saimniekiem ārpus to domēna, norādītajam domēnam ir jāatbilst šādām prasībām: tam jāsākas ar punktu (piemēram, .coreservlets.com).
        Syntax :     public void setDomain(String domain)   
    Parameters :
    domain : String representing the domain in which this cookie is visible
  12. getDomain() : Atgriež domēnu, kurā ir redzams šis sīkfails.
        Syntax :     public String getDomain()  
  13. setMaxAge() : izmanto, lai iestatītu maksimālo sīkfaila vecumu sekundēs. Tas norāda maksimālo laiku pēc sīkfaila izveides, cik ilgi tas ir dzīvs. Negatīvās vērtības norāda, ka sīkfaila derīguma termiņš beigsies, tiklīdz pārlūkprogramma tiks aizvērta.
        Syntax :     public void setMaxAge(long age)   
    Parameters :
    age : Max survive time in seconds
  14. getMaxAge() : Atgriež maksimālo sīkfaila vecumu.
        Syntax :     public long getMaxAge()  
  15. setPath() : Izmanto, lai norādītu ceļu uz klientu, kurā tam jāatgriež sīkfails. Šis sīkfails ir redzams visām norādītā ceļa lapām un apakšdirektorijiem. Piemēram, ja serveris nosūtīja sīkfailu no http://ecommerce.site.com/toys/specials.html, pārlūkprogramma nosūtīs sīkfailu atpakaļ, veidojot savienojumu ar http://ecommerce.site.com/to/beginners.html, bet ne uz http://ecommerce.site.com/c/classic.html.
        Syntax :     public void setPath(String uri)   
    Parameters :
    uri - a String specifying a path
  16. getPath() : Atgriež šim sīkfailam iestatīto ceļu.
        Syntax :     public String getPath()  
  17. Java ieviešana:
  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. Izvade
  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() : Norādīts, vai, nosūtot šo sīkfailu, tiks izmantots drošs protokols. Noklusējuma vērtība ir nepatiesa.
        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() : Atgriež patiesu, ja šis sīkfails ir jānosūta, izmantojot drošu protokolu, pretējā gadījumā ir nepatiess.
        Syntax :     public boolean getSecure()  
  23. getName() : Atgriež sīkfaila nosaukumu.
           Syntax :     public String getName()  
  24. setValue() : Pēc inicializācijas sīkfailam piešķir jaunu vērtību.
        Syntax :     public void setValue(String newValue)   
    Parameters :
    newValue - a String specifying the new value
  25. getValue: Atgriež sīkfaila vērtību.
        Syntax :     public String getValue()  
  26. getVersion() : Atgriež 0, ja sīkfails atbilst sākotnējai Netscape specifikācijai; 1, ja sīkfails atbilst RFC 2965/2109
        Syntax :     public int getVersion()  
  27. setVersion() : Izmanto, lai iestatītu sīkfailu protokola versiju, ko šis sīkfails izmanto.
        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() : Atgriež vērtību True, ja sīkfailu var izmantot tikai http, ti, to nevar izmantot skriptu valodas, piemēram, JS vb utt.
        Syntax :     public boolean isHttpOnly()  
  29. setHttpOnly() : Izmanto, lai iestatītu, vai šis sīkfails ir tikai http vai ne.
        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. domainMatches() : Utilīta funkcija, lai pārbaudītu, vai resursdatora nosaukums ir domēnā vai nav.
        Syntax :     public static boolean domainMatches(String domain   
    String host)
    Parameters :
    domain : domain to check hostname with
    host : host to check
  31. toString() : Izveido šī sīkfaila virknes attēlojumu.
           Syntax :    public String toString()  
  32. vienāds () : atgriež patiesu, ja divi http sīkfaili ir vienādi viens ar otru, pretējā gadījumā.
           Syntax :    public boolean equals(Object obj)  
  33. hashCode() : Atgriezt šī http sīkfaila jaucējkodu. Rezultāts ir trīs nozīmīgu šī sīkfaila komponentu jaucējkoda vērtību summa: nosaukuma domēns un ceļš. Ignorē hashCode klasē Object.
        Syntax :     public int hashCode()  
  34. klons () : Izveidojiet un atgrieziet šī objekta kopiju. Ignorē objektu klases klonēšanas metodi.
        Syntax :     public Object clone()  

Java ieviešana:

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

Izvade:

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

Vēl viens piemērs, lai parādītu, kā sīkfailus faktiski izmanto tīmekļa serveri, kuros mēs izdrukājam informāciju par www.facebook.com saglabātajiem sīkfailiem.

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

Izvade:

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

Atsauce:

Oficiālā Java dokumentācija

Izveidojiet viktorīnu