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>