Slip No 26 Q B

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>
Spread the love

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top