Sunday, May 20, 2018

Cookie Examples

Leave a Comment
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)));
 }
}
If You Enjoyed This, Take 5 Seconds To Share It

0 comments:

Post a Comment