Slip No 6 QB

Write a SERVLET program which counts how many times a user has visited a web page. If user is visiting the page for the first time, display a welcome message. If the user is revisiting the page, display the number of times visited. (Use Cookie)

Servlet Program (VisitCountServlet.java)

import java.io.; import javax.servlet.;
import javax.servlet.http.*;
import javax.servlet.annotation.WebServlet;
@WebServlet("/VisitCountServlet")
public class VisitCountServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    int visitCount = 0;
    boolean newUser = true;

    // Get cookies from request
    Cookie[] cookies = request.getCookies();

    if (cookies != null) {
        for (Cookie c : cookies) {
            if (c.getName().equals("visitCount")) {
                visitCount = Integer.parseInt(c.getValue());
                newUser = false;
            }
        }
    }

    // Increment visit count
    visitCount++;

    // Create or update cookie
    Cookie visitCookie = new Cookie("visitCount", Integer.toString(visitCount));
    visitCookie.setMaxAge(60 * 60 * 24 * 365); // 1 year
    response.addCookie(visitCookie);

    out.println("<html><head><title>Visit Counter</title></head>");
    out.println("<body>");

    if (newUser) {
        out.println("<h2>Welcome! You are visiting this page for the first time.</h2>");
    } else {
        out.println("<h2>You have visited this page " + visitCount + " times.</h2>");
    }

    out.println("</body></html>");
    out.close();
}
}

web.xml (Optional – if annotations are not used)

<web-app>
    <servlet>
        <servlet-name>VisitCountServlet</servlet-name>
        <servlet-class>VisitCountServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>VisitCountServlet</servlet-name>
        <url-pattern>/VisitCountServlet</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