Cookie Examples
By Ramakrishna on Sep 20, 2008 in Cookie Example
2. Cookies
It is sometimes necessary to use cookies for storing information on the client side. A cookie can be accessed from within an element, if the element definition contains an incookie or outcookie tag. An incookie is a cookie that can be read, and an outcookie can obviously be set.
Let’s show how it works with a small example where we store the time when the user last visited a certain page. This is a typical real world example, and could be used for example to determine which news items are new since the last visit on a news site.
If we call our cookie last_visit and want to let the element NewsList get and set the cookie, the element definition would look like this:
Example 9.4. Defining an element with a cookie
<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE element SYSTEM “/dtd/element.dtd”>
<element implementation=”NewsList”>
<incookie name=”last_visit”/>
<outcookie name=”last_visit”/>
</element>
Now that the element is allowed to access the cookie, we can write the Java code to read and write the cookie.
Example 9.5. NewsList.java: Using cookies from Java
package org.rifers.elephant.elements;
import com.uwyn.rife.engine.Element;
import javax.servlet.http.Cookie;
import java.util.*;
import java.text.*;
public class NewsList extends Element
{
public void showNews(Date lastVisited)
{
// Print new news items
}
public void processElement()
{
Date date = Calendar.getInstance().getTime();
if (hasCookie(“last_visit”))
{
Cookie cookie = getCookie(“last_visit”);
try
{
Date last = DateFormat.getInstance().parse(cookie.getValue());
showNews(last);
}
catch (ParseException e)
{
// Handle exception
}
}
else
{
showNews(null);
}
setCookie(new Cookie(“last_visit”,
DateFormat.getInstance().format(date)));
}
}
