Site icon DataFlair

JSP Cookies Handling with Examples

FREE Online Courses: Transform Your Career – Enroll for Free!

This article discusses the cookies handling in JSP in detail. It discusses cookies, its types, working, structure. It also provides a description of setting the cookie, reading the cookies and deleting the cookies in JSP. So let’s start our journey of Cookies handling in JSP.

JSP Cookies Handling

Cookies are textual content or information stored by the server on the client side. They are mainly used to recognize a user on the web server.

Cookies are sent from server to the client (browser). Client’s local machine contains this piece of information called Cookies. Further, all these cookies(in their domain) are sent to the server for all the subsequent requests made by the client so that the server can either identify a user or can use it for other purposes like tracking etc.

Clients can flush cookies or they expire when they reach their maximum age. Some methods discussed below can define its domains.

Types of Cookies in JSP

There are basically two types of cookies:
1. Persistent cookies: These cookies are also known as permanent cookies. They remain on the hard drive and persist until the user deletes them or they expire themselves.
2. Session cookies: These cookies are also known as temporary cookies. They get deleted themselves as soon as the session ends or the browser closes.

Working of JSP Cookies(Uses)

Structure of Cookies in JSP

A cookie sent by a JSP page in HTTP header looks like this:

HTTP/1.1 200 OK
Date: Sat, 25 Apr 2020 21:03:38 GMT
Server: Apache/9.0.34 (WINDOWS) PHP/4.0b3
Set-Cookie: name = my_name; expires = Sun, 26-Apr-20 21:03:38 GMT;
   path = //; domain = identify.com
Connection: close
Content-Type: text/html

A cookie saved in the browser may look like this:

GET / HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.6 (X11; I; Windows 10-15apmac ppc)
Host: localhost.demon.co.in:1126
Accept: image/gif, */*
Accept-Encoding: gzip
Accept-Language: en_IN
Accept-Charset: iso-8859-1,*,utf-8
Cookie: name = my_name

Cookie Class

javax.servlet.http.Cookie class provides constructors and methods to extend the functionality of cookies in a JSP code.

Constructor for Cookies

Constructor available Description
Cookie() It is a constructor that will construct a cookie.
Cookie(String name, String value) It is a constructor that will construct a cookie with mentioned name and value.

JSP Cookies Methods

Technology is evolving rapidly!
Stay updated with DataFlair on WhatsApp!!

JSP supports HTTP cookies. It does this using the servlet technology. Following are the methods used while working with the cookies in JSP.

S.No. Method Description
1 public void setDomain(String pattern) This method defines the domain of the cookies. For e.g. a particular cookie for a respective site.
2 public String getDomain()

 

This method gets the domain of the cookie.
3 public void setMaxAge(int expiry)

 

This method will set the time for which cookie will remain. The expiry time is in seconds. If nothing is set, then it expires as the session ends.
4 public int getMaxAge()

 

This method will get the age of the cookie in seconds. If the age is not set, then it sends -1 that shows the cookie will expire when the browser closes.
5 public String getName()

 

This method will return or get the name of the cookie. A cookie’s name can’t change once it is set.
6 public void setValue(String newValue)

 

This method will set the value of the cookie.
7 public String getValue() This method will get the value of the cookie.
8 public void setPath(String uri)

 

This method will set the path of the cookie i.e. the path it will get applied to. If undefined, the cookie gets applied to all the URLs of that directory.
9 public String getPath()

 

This method will get the path of the associated cookie.
10 public void setSecure(boolean flag)

 

This method tells whether the cookie needs to be sent over encrypted connections or not.
11 public void setComment(String purpose)

 

This method gives a purposeful message to a cookie so that the user can understand the use of it.
12 public String getComment()

 

This method returns the message of the cookie or null if it is not there,

Cookies Handling in JSP through Set, read and Delete Cookies

Now that we have discussed the basics and methods of cookies along with a description, let’s set, read, and delete cookies in JSP.

1. Setting cookies in JSP

Setting a cookie in JSP involves three important steps. These steps are

a. Creating an object of Cookie type

In this step we call a constructor i.e. Cookie. Create an object that will take the values. Pass two string values in this constructor that will be the key and cookie value. Syntax is as follows:

Cookie cookie = new Cookie(“key”, “value”)

E.g. Cookie name = new Cookie(“my_name”, request.getParameter(“my_name”));
A cookie object and its value follows some naming conventions. They should not contain symbols like [ ] ( ) = , ” / ? @ : ; and white spaces.

b. Set the age of cookie

Age of a cookie, as the name suggests, how long a cookie should survive. This can be set by setting the maximum age of the cookie. Age of a cookie is set in seconds. Syntax is as follows:

cookie.setMaxAge(seconds)

E.g. name.setMaxAge(60*60*24) (Max age of cookie is 24 hours in this example)

c. Pass it as a response in HTTP header

The third and final step to set a cookie is by adding it to the HTTP response headers. Syntax is:

response.addCookie(cookie);

E.g. response.addCookie(name);

A detailed example with explanation has been shown below to set a cookie following all the above steps: The code below is for setting the cookies.

one.jsp
<%
   // Creating cookies for name and age.  	
   Cookie name = new Cookie("User_name", request.getParameter("User_name"));
   Cookie age = new Cookie("Age", request.getParameter("Age"));
   Cookie gender = new Cookie("Gender", request.getParameter("Gender"));
  
   // Setting expiry date
   name.setMaxAge(60*60*24);
   age.setMaxAge(60*60*24);
   gender.setMaxAge(60*60*24);
  
   // Add both the cookies in the response header.
   response.addCookie( name );
   response.addCookie( age );
   response.addCookie( gender );
%>
 
<html>
   <head>
  	<title>Set Cookies</title>
   </head>
  
   <body>
               	<h2>--DataFlair--<h2>
     	<h2>Here we are setting Cookies</h2>
  	
  	<ul>
         <li><p><b>User Name:</b>
        	<%= request.getParameter("User_name")%>
     	</p></li>
         <li><p><b>Age:</b>
        	<%= request.getParameter("Age")%>
     	</p></li>
               	 <li><p><b>Gender:</b>
                         	<%=request.getParameter("Gender")%>
               	 </p></li>
  	</ul>
  
   </body>
</html>

The above code will set the cookie: creating specified objects, setting their max ages and adding them to HTTP header response. Now we will make a simple form to get the values using the code below:

<html>
   <body>
  	
  	<form action = "one.jsp" method = "GET">
     	User Name: <br/><input type = "text" name = "User_name">
     	<br />
     	Age: <br/><input type = "text" name = "Age" />
     	<br/>
               	 Gender:</br><input type = "text" name = "Gender">
               	 <br/>
               	 <input type = "submit" value = "Go" />
  	</form>
  	
   </body>
</html>

Save the file in the ROOT directory of apache tomcat. First run the file hello.jsp. It will give the following output:

Fill the details asked and click on the go button. Then you will get the following output as the one.jsp file runs.

Thus we have set the cookies successfully.

2. Reading cookies in JSP

Reading the set cookies is a simple process. We need to create an object of Cookie type and an array of Cookie type. Then we will get all the cookies in this array using the request.getCookie() method of HttpServletRequest. We then apply if loop and get the name and value of these cookies using the method getName() and getValue()

For Example:

two.jsp
<html>
   <head>
  	<title>Read Cookies</title>
   </head>
  
   <body>
  	
     	<h1>Reading Cookies that we set</h1>
 	
  	<%
     	Cookie my_cookie = null;
     	Cookie[] my_cookies = null;
     	
     	// Get an array of Cookies associated with the this domain
     	my_cookies = request.getCookies();
     	
     	if( my_cookies != null ) {
        	out.println("<h2> Found Cookies Name and Value</h2>");
        	
        	for (int i = 0; i < my_cookies.length; i++) {
           	my_cookie = my_cookies[i];
           	out.print("Name : " + my_cookie.getName( ) + ",  ");
           	out.print("Value: " + my_cookie.getValue( )+" <br/>");
        	}
     	} else {
        	out.println("<h2>No cookies founds</h2>");
     	}
  	%>
   </body>  
</html>

Running this code, we get the values of cookies we read. We get the following output.

3. Deleting cookies in JSP

Now, while deleting the cookies in JSP, we follow similar steps to what we did in setting the cookies. We firstly read an already set cookie and then store it in an object of cookie type. Then we set the age of the cookie as zero in order to delete the cookie using the method setMaxAge(0) method. Then we add it to the Http Response Header so as to delete this cookie.

For Example:

three.jsp
<html>
   <head>
  	<title>Delete Cookies</title>
   </head>
  
   <body>
  	<center>
     	<h1>Delete Cookies</h1>
  	</center>
  	<%
     	Cookie my_cookie = null;
     	Cookie[] my_cookies = null;
     	
     	// Get an array of Cookies associated with the this domain
     	my_cookies = request.getCookies();
     	
     	if( my_cookies != null ) {
        	out.println("<h3> Found some Cookie Name and Value</h3>");
        	
    	    for (int i = 0; i < my_cookies.length; i++)
                         	{
           	my_cookie = my_cookies[i];
           	
           	//Deleting all the cookies
              	my_cookie.setMaxAge(0);
                  response.addCookie(my_cookie);
       	       out.print("Deleted cookie: " +
              	my_cookie.getName( ) + "<br/>");
           	}
           	out.print("Name : " + my_cookie.getName( ) + ",  ");
           	out.print("Value: " + my_cookie.getValue( )+" <br/>");
       	 }
      	else {
        	out.println(
        	"<h2>No cookies were founds</h2>");
     	}
  	%>
   </body>
  
</html>

In this example, we deleted all the cookies that we set and read in the previous JSP programs. You can directly delete cookies in Internet explorer by clicking on the tools button, go to Internet settings and delete browsing history that involves cookies too. Below is the output of the code.

Example of JSP Cookies

Using the above code of hello.jsp, one.jsp and two.jsp we can view the values set for the cookies. In this example we have joined the setting and reading code(one.jsp and two.jsp) by adding a link of two.jsp in one.jsp. Below is the code and its output.

one.jsp
<%
   // Creating cookies for name and age.  	
   Cookie name = new Cookie("User_name", request.getParameter("User_name"));
   Cookie age = new Cookie("Age", request.getParameter("Age"));
   Cookie gender = new Cookie("Gender", request.getParameter("Gender"));
  
   // Setting expiry date
   name.setMaxAge(60*60*24);
   age.setMaxAge(60*60*24);
   gender.setMaxAge(60*60*24);
  
   // Add both the cookies in the response header.
   response.addCookie( name );
   response.addCookie( age );
   response.addCookie( gender );
%>
<html>
   <head>
  	<title>Set Cookies</title>
   </head>
   <body>
  <h2>--DataFlair--<h2>
     	<h2>Here we are setting Cookies</h2>
  	
  	<ul>
     	<li><p><b>User Name:</b>
        	<%= request.getParameter("User_name")%>
     	</p></li>
     	<li><p><b>Age:</b>
        	<%= request.getParameter("Age")%>
     	</p></li>
   <li><p><b>Gender:</b>
   <%=request.getParameter("Gender")%>
   </p></li>
  	</ul>
   <p><a href="two.jsp">Next Page will read the cookies</a><p>
   </body>
</html>

Output of above code is:

Advantages of using JSP Cookies

Disadvantages of using Cookies in JSP

Conclusion

Finally we discussed cookies handling in JSP. We saw the basics of cookies, its working, structure, advantages, disadvantages etc. We discussed cookie class and methods available to support cookies in JSP etc. This article gave a detailed description about the setting, reading, deleting cookies in JSP.

Do share your feedback in the comment section if you like the article.

Exit mobile version