No Results
Search Tips:
- Please consider misspellings
- Try different search keywords
Newer Version Available
Cookie Class
Namespace
System
Usage
Use the setCookies method of the PageReference Class to attach cookies to a page.
Consider the following limitations when using the Cookie class:
- The Cookie class can only be accessed using Apex that is saved using the Salesforce.com API version 19 and above.
- The maximum number of cookies that can be set per Force.com domain depends on your browser. Newer browsers have higher limits than older ones.
- Cookies must be less than 4K, including name and attributes.
For more information on sites, see “Force.com Sites Overview” in the Salesforce online help.
Example
The following example creates a class, CookieController, which is used with a Visualforce page (see markup below) to update a counter each time a user displays a page. The number of times a user goes to the page is stored in a cookie.
1swfobject.registerObject("clippy.codeblock-0", "9");// A Visualforce controller class that creates a cookie
2// used to keep track of how often a user displays a page
3public class CookieController {
4
5 public CookieController() {
6 Cookie counter = ApexPages.currentPage().getCookies().get('counter');
7
8 // If this is the first time the user is accessing the page,
9 // create a new cookie with name 'counter', an initial value of '1',
10 // path 'null', maxAge '-1', and isSecure 'false'.
11 if (counter == null) {
12 counter = new Cookie('counter','1',null,-1,false);
13 } else {
14 // If this isn't the first time the user is accessing the page
15 // create a new cookie, incrementing the value of the original count by 1
16 Integer count = Integer.valueOf(counter.getValue());
17 counter = new Cookie('counter', String.valueOf(count+1),null,-1,false);
18 }
19
20 // Set the new cookie for the page
21 ApexPages.currentPage().setCookies(new Cookie[]{counter});
22 }
23
24 // This method is used by the Visualforce action {!count} to display the current
25 // value of the number of times a user had displayed a page.
26 // This value is stored in the cookie.
27 public String getCount() {
28 Cookie counter = ApexPages.currentPage().getCookies().get('counter');
29 if(counter == null) {
30 return '0';
31 }
32 return counter.getValue();
33 }
34}1swfobject.registerObject("clippy.codeblock-1", "9");// Test class for the Visualforce controller
2@isTest
3private class CookieControllerTest {
4 // Test method for verifying the positive test case
5 static testMethod void testCounter() {
6 //first page view
7 CookieController controller = new CookieController();
8 System.assert(controller.getCount() == '1');
9
10 //second page view
11 controller = new CookieController();
12 System.assert(controller.getCount() == '2');
13 }
14}The following is the Visualforce page that uses the CookieController Apex controller above. The action {!count} calls the getCount method in the controller above.
1swfobject.registerObject("clippy.codeblock-2", "9");<apex:page controller="CookieController">
2You have seen this page {!count} times
3</apex:page>