In this tutorial you will learn how to add a cookie in a response and how to get form the request.
To add a cookie in response there is a method addCookie() of HttpServletResponse interface that adds a specified cookie in response. And to get a cookie there is a method getCookies() of HttpServletRequest interface that returns all the Cookie objects, in an array, sent by a client with the request.
Example :
Here I am giving a simple example which will demonstrate you to how to use these methods. In this example I am trying to do subtraction the two numbers at the same servlet and using the same these numbers want to add on another servlet. For this I have taken a ServletConfig and ServletContext references which will help in to carry the requested value from one servlet to another servlet. But the main thing is that I want to adds these value only when the user is valid for this I create and add a cookie in response object of CookieExample1Sub.java example and in CookieExample1Add.java gets the cookie and matched with the name.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Demo Example of Cookie</title> </head> <body> <form action="CookieExample1Sub"> <table> <tr> <td>Enter Your Name</td><td><input type="text" name="name"/></td> </tr> <tr> <td>First Number </td><td><input type="text" name= "firstNumber"/></td> </tr> <tr> <td>Second Number </td> <td><input type="text" name= "secondNumber"/></td> </tr> <tr> <td></td><td><input type="submit" value="subtract"/></td> </tr> </table> </form> </body> </html>
CookieExample1Sub.java
package roseindia.Cookie;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.Cookie;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/CookieExample1Sub")
public class CookieExample1Sub extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
String name= request.getParameter("name");
int firstNumber= Integer.parseInt(request.getParameter("firstNumber"));
int secondNumber= Integer.parseInt(request.getParameter("secondNumber"));
int result;
ServletConfig config= getServletConfig();
ServletContext context= config.getServletContext();
context.setAttribute("FirstNumber", firstNumber);
context.setAttribute("SecondNumber", secondNumber);
Cookie cookieName= new Cookie("User", name);
response.addCookie(cookieName);
response.setContentType("text/html");
PrintWriter out= response.getWriter();
if(firstNumber>secondNumber)
{
result= firstNumber-secondNumber;
out.println("Subtraction of two numbers are : "+result);
}
else
{
result= secondNumber-firstNumber;
out.println("Subtraction of two numbers are : "+result);
}
out.println("<html><body>");
out.println("<form action=\"CookieExample1Add\">");
out.println("To add these numbers click on \"add\"button.");
out.println("<br><input type=\"submit\" value=\"add\"/>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
CookieExample1Add.java
package roseindia.Cookie;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/CookieExample1Add")
public class CookieExample1Add extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletConfig config = getServletConfig();
ServletContext context = config.getServletContext();
int number1 = (Integer) context.getAttribute("FirstNumber");
int number2 = (Integer) context.getAttribute("SecondNumber");
int firstNumber = number1;
int secondNumber = number2;
int result;
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Cookie c = null;
Cookie[] cookies = request.getCookies();
for (int i = 0; i < cookies.length; i++) {
c = cookies[i];
String name = c.getValue();
if (name.equals("bipul")) {
result = firstNumber + secondNumber;
out.println("Hi "+name+" your result is : "+result);
} else {
name = c.getValue();
out.println("Sorry " + name
+ ", your are not allowed to add these numbers");
}
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
Output :
When you will execute the above example you will get the output as :

when you will enter the value like the below and will click on "subtract" button :

You will get the output as :

When you will click on "add" button you will get the output as :

When you will enter the value as and click on "subtract" button :

You will get the output as :

And when you will click on "add" button you will get the output as :

If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.
Ask Questions? Discuss: Java Servlet addCookie Example
Post your Comment