advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement


Listing 7: Cookie.java
import java.net.*;
import java.text.*;
import java.util.*;

public class Cookie{

     //clean information
	 private String key=null;
	 private String value=null;
     
     private URI uri=null;          //URI
     private String domain=null;    //domain
     private Date expire_date=null; //expire
     private String path=null;      //path
	 
     //date formats
     private static DateFormat DateFormat_I=
                new SimpleDateFormat("E, dd MMM yyyy k:m:s 'GMT'");
     private static DateFormat DateFormat_II=
                new SimpleDateFormat("E, dd-MMM-yyyy k:m:s 'GMT'");
				
     public Cookie(URI uri, String cookie_content) {
	 
     //initialization    
     this.uri = uri; 
     this.path = "/";
     this.domain = uri.getHost(); 
	 
     System.out.println("cookie_content="+cookie_content);
	 
     //extract the domain, path and expiration date          
     StringTokenizer ST=new StringTokenizer(cookie_content,";");
     String sir=ST.nextToken();
     this.key=sir.substring(0,sir.indexOf('='));
     this.value=sir.substring(sir.indexOf('='),sir.length());
            
     String[] S=new String[ST.countTokens()];
     int k=0;
     
     while(ST.hasMoreTokens())
              {
              S[k]=ST.nextToken().trim();
              k++;
              }
     
     for(int i=0;i<k;i++)
          {
          String key_side=S[i].substring(0,S[i].indexOf('='));
          String value_side=S[i].substring(S[i].indexOf('=')+1,S[i].length());
                              
          if(key_side.equalsIgnoreCase("domain"))
                 {
                 //verify if uri.getHost coresponds to domain
                 this.domain=value_side;
                 }  
                 
          if(key_side.equalsIgnoreCase("path"))
                 {
                 this.path=value_side;
                 }
                 
          if(key_side.equalsIgnoreCase("expires"))
                 {
                 try{
                    this.expire_date=DateFormat_I.parse(value_side);
                    }catch(ParseException e)
                       {
                       try{
                          this.expire_date=DateFormat_II.parse(value_side);                          
                          }catch(ParseException e2)
                             {throw new IllegalArgumentException(
                                    "Bad date format in cookie_content: " + value);}}                         
                 }
              }   
        
        System.out.println("-----------------------------------------------");
        System.out.println("domain / path / expire_date = "+this.domain+" / "
              +this.path+" / "+expire_date);
        System.out.println("-----------------------------------------------");               
        }           
     
     //verify if the current cookie has expired             
     public boolean ExpireState()
           {
           if(this.expire_date==null)
                 {
                 return false;
                 }
                 
       Date today=new Date();
       boolean aft=today.after(expire_date);
       return aft;
     }
        
     //verify if the current cookie coresponds to the URI
     public boolean MatchState(URI uri)
      {
       if (ExpireState())
                 {
                 return false;
                 }

      String path=uri.getPath();
       if (path==null)
          {
          path = "/";
          }

       if(path.startsWith(this.path))return true;
       return false;
      }

  //returns the cookie inofrmation
  public String toString()
     {
     StringBuilder SB=new StringBuilder(key);
     SB.append(value);
     return SB.toString();
     } 

//returns key
public String getCookieKey()
 {
 return this.key;
 }

//return URI
public URI getURI()
 {
 return this.uri;
 }
}

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.

 Avaya DevConnect Center
 Service Component Architecture/Service Data Objects Solution Center
 Intel Go Parallel Portal
 Internet.com eBook Library
 IBM Software Construction Toolbox
 Microsoft RIA Development Center
 Destination .NET
XML error: not well-formed (invalid token) at line 53
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

Windows 7: It's Not Just a Codename Anymore
Microsoft Shines Silverlight on Eclipse
OpenOffice Hits 3.0: Can It Challenge Microsoft?
Get Ready for Microsoft's 'Oslo' Modeling Tool
Latest Linux Hits Networking Flaws
Metasploit 3.2 Offers More 'Evil Deeds'
'Thank You Apple. Seriously.'
The Buzz: BlackBerry App Store Seen Next
Is .NET on Linux Finally Ready?
Red Hat Takes on HPC Market, Microsoft

Intel Sees Fewer Power Cords in Your Future
F# 101
Use Explicit Conversion Functions to Avert Reckless Implicit Conversions
Polyglot Programming: Building Solutions by Composing Languages
Automated testing for .NET by Ben Hall
"Supply Chain" SOA with SKOS
Service Component Architecture in Real Life
C++Ox: The Dawning of a New Standard
Getting Started with Virtualization
Master Complex Builds with MSBuild

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About



JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

Solutions
Whitepapers and eBooks
Microsoft Article: Will Hyper-V Make VMware This Decade's Netscape?
Microsoft Article: BitLocker Encryption on Windows Server 2008
Go Parallel Article: Intel Thread Checker, Meet 20 Million LOC
IBM Whitepaper: Innovative Collaboration to Advance Your Business
Internet.com eBook: Real Life Rails
Avaya Article: Call Control XML - Powerful, Standards-Based Call Control
Tripwire Whitepaper: Seven Practical Steps to Mitigate Virtualization Security Risks
Internet.com eBook: The Pros and Cons of Outsourcing
Internet.com eBook: Best Practices for Developing a Web Site
IBM CXO Whitepaper: The 2008 Global CEO Study "The Enterprise of the Future"
Avaya Article: Call Control XML in Action - A CCXML Auto Attendant
Go Parallel Article: James Reinders on the Intel Parallel Studio Beta Program
IBM CXO Whitepaper: Unlocking the DNA of the Adaptable Workforce--The Global Human Capital Study 2008
Adobe Acrobat Connect Pro: Web Conferencing and eLearning Whitepapers
Go Parallel Article: Getting Started with TBB on Windows
HP eBook: Storage Networking , Part 1
MORE WHITEPAPERS, EBOOKS, AND ARTICLES
Webcasts
Go Parallel Video: Intel(R) Threading Building Blocks: A New Method for Threading in C++
HP Video: Is Your Data Center Ready for a Real World Disaster?
Microsoft Partner Portal Video: Microsoft Gold Certified Partners Build Successful Practices
HP On Demand Webcast: Virtualization in Action
Go Parallel Video: Performance and Threading Tools for Game Developers
Rackspace Hosting Center: Customer Videos
Intel vPro Developer Virtual Bootcamp
HP Disaster-Proof Solutions eSeminar
HP On Demand Webcast: Discover the Benefits of Virtualization
MORE WEBCASTS, PODCASTS, AND VIDEOS
Downloads and eKits
Microsoft Download: Silverlight 2 Software Development Kit Beta 2
30-Day Trial: SPAMfighter Exchange Module
Red Gate Download: SQL Toolbelt
Iron Speed Designer Application Generator
Microsoft Download: Silverlight 2 Beta 2 Runtime
MORE DOWNLOADS, EKITS, AND FREE TRIALS
Tutorials and Demos
IBM IT Innovation Article: Green Servers Provide a Competitive Advantage
Microsoft Article: Expression Web 2 for PHP Developers--Simplify Your PHP Applications
MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES