Write a SERVLET program to Design an HTML page containing 4 option buttons
(Painting, Drawing, Singing and swimming) and 2 buttons reset and submit. When the user clicks submit, the server responds by adding cookie containing the selected hobby and sends the HTML page to the client. Program should not allow duplicate cookies to be written.
hobby.html
<!DOCTYPE html>
<html>
<head>
<title>Select Hobby</title>
</head>
<body>
<h2>Select Your Hobby</h2>
<form action="HobbyServlet" method="post">
<input type="radio" name="hobby" value="Painting"> Painting<br>
<input type="radio" name="hobby" value="Drawing"> Drawing<br>
<input type="radio" name="hobby" value="Singing"> Singing<br>
<input type="radio" name="hobby" value="Swimming"> Swimming<br><br>
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</form>
</body>
</html>
HobbyServlet.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HobbyServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String selectedHobby = request.getParameter("hobby");
boolean isDuplicate = false;
// Read existing cookies
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie c : cookies) {
if (c.getName().equals("hobby") &&
c.getValue().equals(selectedHobby)) {
isDuplicate = true;
break;
}
}
}
// If not duplicate, add cookie
if (!isDuplicate && selectedHobby != null) {
Cookie hobbyCookie = new Cookie("hobby", selectedHobby);
hobbyCookie.setMaxAge(60 * 60); // 1 hour
response.addCookie(hobbyCookie);
}
// Response HTML
out.println("<html><body>");
out.println("<h2>Hobby Selection Result</h2>");
if (selectedHobby == null) {
out.println("<p>No hobby selected.</p>");
} else if (isDuplicate) {
out.println("<p>Cookie already exists for hobby: <b>"
+ selectedHobby + "</b></p>");
} else {
out.println("<p>Hobby saved in cookie: <b>"
+ selectedHobby + "</b></p>");
}
out.println("<a href='hobby.html'>Go Back</a>");
out.println("</body></html>");
}
}
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HobbyServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String selectedHobby = request.getParameter("hobby");
boolean isDuplicate = false;
// Read existing cookies
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie c : cookies) {
if (c.getName().equals("hobby") &&
c.getValue().equals(selectedHobby)) {
isDuplicate = true;
break;
}
}
}
// If not duplicate, add cookie
if (!isDuplicate && selectedHobby != null) {
Cookie hobbyCookie = new Cookie("hobby", selectedHobby);
hobbyCookie.setMaxAge(60 * 60); // 1 hour
response.addCookie(hobbyCookie);
}
// Response HTML
out.println("<html><body>");
out.println("<h2>Hobby Selection Result</h2>");
if (selectedHobby == null) {
out.println("<p>No hobby selected.</p>");
} else if (isDuplicate) {
out.println("<p>Cookie already exists for hobby: <b>"
+ selectedHobby + "</b></p>");
} else {
out.println("<p>Hobby saved in cookie: <b>"
+ selectedHobby + "</b></p>");
}
out.println("<a href='hobby.html'>Go Back</a>");
out.println("</body></html>");
}
}
web.xml
<web-app>
<servlet>
<servlet-name>HobbyServlet</servlet-name>
<servlet-class>HobbyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HobbyServlet</servlet-name>
<url-pattern>/HobbyServlet</url-pattern>
</servlet-mapping>
</web-app>